我有一个 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/