Boa tarde pessoal, estou precisando usar uma matriz com 4 dimensões em c/c++.
Uso o Code Blocks como GUI, ele aceita a tal matriz e tenho memória o suficiente para isso, mas na execução do programa as posições não são acessadas direito.
Já verifiquei TODAS as variáveis usadas e todas estão dimensionadas corretamente, não tem nenhum problema de "invasão" de um vetor/matriz em outro!
Onde DEF_EST = 501 e DEF_GR = 103 e MAX_EST = 500 e MAX_GR = 102.
#define MAXIMO_GR 102
#define MAXIMO_EST 500
const int DEF_EST=MAXIMO_EST+1, MAX_EST=MAXIMO_EST, DEF_GR=MAXIMO_GR+1, MAX_GR=MAXIMO_GR;
São 4 matrizes :
short int
ESTAT_ACRT_ANT_SOZ[DEF_EST][DEF_GR][DEF_GR][DEF_GR],
ESTAT_ACRT_PEN_SOZ[DEF_EST][DEF_GR][DEF_GR][DEF_GR],
ESTAT_ACRT_FUT_SOZ[DEF_EST][DEF_GR][DEF_GR][DEF_GR],
ESTAT_ACRT_FUT2_SOZ[DEF_EST][DEF_GR][DEF_GR][DEF_GR],
Quando mudo esses valores (de 501 para 301 ou 201 ou 101) dá erro também !
Então me pergunto se há uma limitação no número de dimensões ou qual será o problema.
Quando inicializo as matrizes (deixo todas = 0), já dá confusão, dá erro :
/* PARA ESTATISTICA */
for (I=0; I<=MAX_EST; I++)
{ for (II=0; II<=MAX_GR; II++)
{ cout<<"\n AQUI 8 D1 I "<<I<<" II "<<II;
for (III=0; III<=MAX_GR; III++)
{ cout<<"\n AQUI 7 C1 I "<<I<<" II "<<II<<" III "<<III;
for (MMM=0; MMM<=MAX_GR; MMM++)
{ cout<<"\n AQUI 3 A1 I "<<I<<" II "<<II<<" III "<<III<<" MMM "<<MMM;
ESTAT_ACRT_ANT_SOZ[I][II][III][MMM]=0;
cout<<"\n AQUI 3 A2 I "<<I<<" II "<<II<<" III "<<III<<" MMM "<<MMM;
ESTAT_ACRT_PEN_SOZ[I][II][III][MMM]=0;
cout<<"\n AQUI 3 A3 I "<<I<<" II "<<II<<" III "<<III<<" MMM "<<MMM;
ESTAT_ACRT_FUT_SOZ[I][II][III][MMM]=0;
cout<<"\n AQUI 3 A4 I "<<I<<" II "<<II<<" III "<<III<<" MMM "<<MMM;
ESTAT_ACRT_FUT2_SOZ[I][II][III][MMM]=0;
cout<<"\n AQUI 3 A5 I "<<I<<" II "<<II<<" III "<<III<<" MMM "<<MMM;
}
cout<<"\n AQUI 7 C2 I "<<I<<" II "<<II<<" III "<<III;
}
cout<<"\n AQUI 8 D2 I "<<I<<" II "<<II;
}
cout<<"\n AQUI 3 B I "<<I<<" II "<<II<<" III "<<III<<" MMM "<<MMM;
}
cout<<"\n AQUI 3 C "; cout<<"\n PARADA ! \n"; system("PAUSE > null");
Então eu pergunto :
Posso usar uma matriz com 4 dimensões no compilador MinGW/GCC?
Qual é o limite de dimensões de uma matriz em c/c++ no MinGW/GCC?
O MinGW/GCC aceita a matriz com 4 dimensões, mas na execução fica tudo bagunçado.
Será que alguém pode me ajudar ?