数组下标的无效类型'int [int]'

时间:2008-12-12 19:25:24

标签: c++ arrays compiler-errors

这段代码会引发标题中给出的编译错误,有人能告诉我要改变什么吗?

#include <iostream>

using namespace std;

int main(){

    int myArray[10][10][10];

    for (int i = 0; i <= 9; ++i){
        for (int t = 0; t <=9; ++t){            
            for (int x = 0; x <= 9; ++x){
                for (int y = 0; y <= 9; ++y){

                myArray[i][t][x][y] = i+t+x+y; //This will give each element a value

                      }
                      }
                      }
                      }

    for (int i = 0; i <= 9; ++i){
        for (int t = 0; t <=9; ++t){
            for (int x = 0; x <= 9; ++x){
                for (int y = 0; y <= 9; ++y){

                cout << myArray[i][t][x][y] << endl;

                    }
                    }
                    }                
                    }

    system("pause");

}

提前致谢

5 个答案:

答案 0 :(得分:13)

您正在订阅三维数组myArray[10][10][10]四次myArray[i][t][x][y]。您可能需要为数组添加另一个维度。还要考虑像Boost.MultiArray这样的容器,尽管此时可能已经超出了你的想法。

答案 1 :(得分:5)

要改变什么?除了3维或4维数组问题,你应该摆脱幻数(10和9)。

const int DIM_SIZE = 10;
int myArray[DIM_SIZE][DIM_SIZE][DIM_SIZE];

for (int i = 0; i < DIM_SIZE; ++i){
    for (int t = 0; t < DIM_SIZE; ++t){            
        for (int x = 0; x < DIM_SIZE; ++x){

答案 2 :(得分:2)

int myArray[10][10][10];

应该是

int myArray[10][10][10][10];

答案 3 :(得分:1)

您正尝试使用4个去参考

来访问3维数组

您只需要3个循环而不是4个循环,或int myArray[10][10][10][10];

答案 4 :(得分:0)

我认为你初步确定了一个3d数组,但是你试图访问一个4维数组。

豫ICP备18024241号-1