程序没有执行,因为它应该执行。当我输入元素时,它需要超过12个元素,这不应该发生。如果代码中有任何错误,请告诉我。我试图分别输出三个2D阵列。
#include <iostream>
using namespace std;
int main()
{
int i, j, k;
int abc[2][2][3]; // three 2D arrays declared .
for (k = 0; k <= 2; k++) {
for (i = 0; i <= 1; i++) {
for (j = 0; j <= 1; j++) {
cin >> *(*(*(abc + k) + i) + j); // entering the element abc[i][j][k].
}
}
}
// REQUIRED 3D ARRAY .
for (k = 0; k <= 2; k++) {
for (i = 0; i <= 1; i++) {
for (j = 0; j <= 1; j++) {
cout << *(*(*(abc + k) + i) + j) << " ";
} // respective 2d arrays are printed .
cout << endl;
}
cout << endl;
}
}
答案 0 :(得分:1)
*(*(*(abc + k) + i) + j)
是abc[k][i][j]
。
您在数组之外编制索引,这是未定义的(您最有可能覆盖索引变量)。
3个2x2阵列的数组为abc[3][2][2]
- 这对于你的循环来说是正确的。
(当你使用数组时不要使用指针算法,这只会令人困惑。)