当前位置: 代码迷 >> 综合 >> sizeof形参数组
  详细解决方案

sizeof形参数组

热度:38   发布时间:2024-01-30 09:44:39.0

如下代码中,把数组作为函数参数时,函数中需要计算数组大小:

void copy(int a[],int b[])
{memcpy(b,a,sizeof(a));
}

这段代码的本意是将a中的所有字符拷贝到B中,但运行时会发现不能得到正确结果。因为当数组作为形参时,在函数内退化为指针,因此sizeof(a)返回的是指针的大小,而不是数组a的大小。正确的做法将数组的引用作为参数:

void copy(int (&a)[],int b[])
{memcpy(b,a,sizeof(a));
}