我在1D中有一个数组。
mutable
我需要使用C:
将其转换为表单的3D数组data[27]=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27};
有人可以帮我这样做吗?
我尝试了以下代码。似乎不起作用:
data[3][3][3]
答案 0 :(得分:0)
你的逻辑似乎没问题。问题在于声明1D和3D阵列。
1)C
中没有byte
的数据类型
2)new
不是C的一部分。您无法使用new
分配内存
请尝试以下更改以使代码正常工作
int main()
{
int x;
int y;
int z;
int data[] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27}; // Read 4096 bytes
int res[3][3][3];
for (x = 0 ; x < 3 ; x++) {
for (y = 0 ; y < 3 ; y++) {
for (z = 0 ; z < 3 ; z++) {
res[x][y][z] = data[3*3*x + 3*y + z];
}
}
}
printf("Printing the 3D matrix\n");
//run the loop till maximum value of x, y & z
for (x = 0 ; x < 3 ; x++) {
for (y = 0 ; y < 3 ; y++) {
for (z = 0 ; z < 3 ; z++) {
printf("%d\t",res[x][y][z]);
printf("\n");
}
}
}
return 0;
}