如何在C中(深度)复制数组?

如何在C中(深度)复制数组?,c,C,关于,它说我可以使用memcpy,复制的大小由sizeof()决定,但是,数组不是指向指针吗 除了遍历数组外,如何使用memcpy深度复制数组 谢谢 在链接示例中int weekly_hours[5][5]为25个整数分配空间。没有进一步的间接寻址,因此您可以安全地使用memcpy复制它的值。多维数组是连续分配的。指针数组(指针的数组…)是不同的(每个子指针应该自己分配/复制/释放) 在大多数情况下,一维数组和单个指针可以互换使用,这一点不要让人感到困惑,因为它们在技术上并不相同。希望能够消除一

关于,它说我可以使用
memcpy
,复制的大小由
sizeof()
决定,但是,数组不是指向指针吗

除了遍历数组外,如何使用
memcpy
深度复制数组


谢谢

在链接示例中
int weekly_hours[5][5]为25个整数分配空间。没有进一步的间接寻址,因此您可以安全地使用memcpy复制它的值。

多维数组是连续分配的。指针数组(指针的数组…)是不同的(每个子指针应该自己分配/复制/释放)


在大多数情况下,一维数组和单个指针可以互换使用,这一点不要让人感到困惑,因为它们在技术上并不相同。

希望能够消除一些困惑:

  • 数组是已分配的数据块, 相邻的存储单元
  • 数组变量名可以转换(“衰减”)为指向数组第一个元素的指针,但反过来则不行。每次在指针算术中使用数组变量名时,都会隐式执行此操作
  • 可以对任何静态赋值数组的变量名使用sizeof()运算符,以获取数组中的字节数。如果sizeof()用于静态分配的多维数组,则同样适用
  • 如果在 指针,您将得到一个 指针(即32位上的4个字节 机器)
数组不是指针,无论任何人试图告诉你什么。