假设我有一个像这样的多维数组
int a[10][10]
int b[10][10]
void arrayCopy(int* a, int* b, int size){
memcpy(b, a, size);
}
int main(){
a[0][0] = 13;
a[0][1] = 17;
"and so on..."
arraycopy(&a[0][0], &b[0][0], 10);
}
此代码无效我无法从 a -> b 复制所有值,我哪里做错了??
最佳答案
您的 size
论点有几个错误的原因。首先,有 10 * 10 == 100 个元素,再加上您将其传递给 memcpy()
,它以 bytes 和您的 int 为单位
可能更像是 4 个字节。此外,编写这样的函数并不是真的必要。这应该足够了:
memcpy(b, a, sizeof(a));
关于复制C多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096473/