недопустимые типы int [int] для индекса - PullRequest
7 голосов
/ 12 декабря 2008

Этот код выдает ошибку компиляции, указанную в заголовке, может кто-нибудь сказать мне, что изменить?

#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 ]

13 голосов
/ 12 декабря 2008

Вы подписываете трехмерный массив myArray[10][10][10] четыре раза myArray[i][t][x][y]. Возможно, вам понадобится добавить другое измерение в ваш массив. Также рассмотрим контейнер, подобный Boost.MultiArray , хотя, вероятно, на данный момент у вас над головой.

5 голосов
/ 12 декабря 2008

Что поменять? Помимо проблемы 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 голосов
/ 12 декабря 2008
int myArray[10][10][10];

должно быть

int myArray[10][10][10][10];
1 голос
/ 12 декабря 2008

Вы пытаетесь получить доступ к трехмерному массиву с 4 разыменованиями

Вам нужно всего 3 цикла вместо 4 или int myArray[10][10][10][10];

0 голосов
/ 04 февраля 2018

Я думаю, что вы инициализировали трехмерный массив, но вы пытаетесь получить доступ к массиву с 4 измерениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...