复制C多维数组

标签 c arrays

假设我有一个像这样的多维数组

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/

相关文章:

c - 为什么不能使用 char ** 定义字符串数组?

检查 c 宏中字符串的第一个字符

javascript - 需要帮助通过数组获取类名

javascript - 从对象获取属性

python / NumPy : Efficiently store non-sparse large symmetric arrays?

python - 如何在 python 中使用 numpy 获取具有最多给定元素的二维矩阵(列表)中的列和行的索引

c - 后缀在前缀之前?

c - 关于整数格式转换

c - 如何从堆栈中弹出不同类型的结构

ios - 数组转换错误