недопустимые типы "int[int]" для индекса массива
этот код выдает ошибку компиляции, указанную в заголовке, может ли кто-нибудь сказать мне, что изменить?
#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 ответов
вы подписываетесь на трехмерный массив myArray[10][10][10]
четыре раза myArray[i][t][x][y]
. Вероятно, вам нужно будет добавить другое измерение в свой массив. Также рассмотрим контейнер, как импульс.MultiArray, хотя, возможно, над вашей головой в данный момент.
что менять? Помимо проблемы 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){
вы пытаетесь получить доступ к трехмерному массиву с 4 де-ссылками
вам нужно только 3 петли вместо 4, или int myArray[10][10][10][10];