如何在C中memcpy二维数组:
我有一个二维数组:
int a[100][100];
int c[10][10];
我想使用memcpy
将数组 c 中的所有值复制到数组 a,如何使用 memcpy 执行此操作?
int i;
for(i = 0; i<10; i++)
{
memcpy(&a[i][10], c, sizeof(c));
}
这个对吗?
那应该工作:
int i;
for(i = 0; i<10; i++)
{
memcpy(&a[i], &c[i], sizeof(c[0]));
}
它实际上应该是:
for(i = 0; i < 10; ++ i)
{
memcpy(&(a[i][0]), &(c[i][0]), 10 * sizeof(int));
}
我不认为这是正确的,不。
没有办法memcpy()
知道它的内存布局a
并“尊重”它,它会覆盖sizeof c
相邻的字节,这可能不是你的意思。
如果要复制到 的“子方格”中a
,则必须手动进行。