c++ - subindice - llenar e imprimir una matriz en c
tipos inválidos ''int[int]'' para subĂndice de matriz (4)
Este código arroja el error de compilación que figura en el título, ¿alguien me puede decir qué cambiar?
#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");
}
gracias por adelantado
Está suscribiendo una matriz tridimensional myArray[10][10][10]
cuatro veces myArray[i][t][x][y]
. Probablemente necesites agregar otra dimensión a tu matriz. Considere también un contenedor como Boost.MultiArray , aunque probablemente eso esté por encima de su cabeza en este punto.
¿Qué cambiar? Además del problema de la matriz tridimensional o dimensional, debes deshacerte de los números mágicos (10 y 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){
Está intentando acceder a una matriz tridimensional con 4 des-referencias
Solo necesita 3 bucles en lugar de 4, o int myArray[10][10][10][10];
int myArray[10][10][10];
debiera ser
int myArray[10][10][10][10];