c - 将 3D 数组的 1 个值分配给 1D 数组

标签 c arrays

我有一个 3D 数组 arr1[16][8][9],我想将此数组的内容分配给 1D 数组 arr2[36] 。所以我正在尝试:

arr2[0] = arr1[0][0][0];
arr2[1] = arr1[0][0][1];
......
arr2[8] = arr1[0][0][8];

我正在调用一个函数:

func_arr(int arr2[36], int arr1[16][8][9])

函数声明如下:

void func_arr(int arr2[36],int arr1[][8][9]);

但是数组赋值似乎无效。更好的方法是什么?

最佳答案

函数调用似乎不正确。替换下面的行

func_arr(int arr2[36], int arr1[16][8][9])

func_arr(arr2, arr1);

第一个函数参数的类型是 int [36] 并且您正在传递 arr2[36]。假设 arr2 是 int arr2[36],则 arr2[36] 的类型是 int,因此类型不匹配。而且arr2[36]是int,位于arr2结束后的地址处。

关于c - 将 3D 数组的 1 个值分配给 1D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23735784/

相关文章:

c - C中如何根据索引获取子字符串

ios - 如何最好地管理 Swift 中的可选数组?

arrays - 如何在 ruby​​ 数组中仅添加正数?

JAVA - 检查值是否不在其他索引二维数组中

c++ - 映射和数组

c - 如何使用C编程删除行号?

c - C中的XML签名验证库?

c - 在 C 中格式化文本

c++ - 如何获取当前函数的标识符?

c - 使用 C 中的数组修复输出中的小错误