Ciao a tutti, io sono alle prese con il seguente problema:
(xubuntu 14.04, compilatore g++)
devo scrivere un programma per il quale mi sarà necessario utilizzare un array bidimensionale di dimensione [1048576][20]. se lo dichiaro normalmente il programma compila, ma in esecuzione ricevo segmentation fault. se lo dichiaro fuori dalla main non compila. ho gia passato svariate ore a cercare di capire come risolvere aprendo i più disparati link. anche se lo dichiaro utilizzando new non funziona! qualcuno sa dirmi come fare?
inoltre non capisco perchè ciò che dichiaro fouri dalla main venga preso per inesistente...
scrivo qui sotto un estratto del programma
using namespace std;
const int Permos = pow(2, 20);
int Cifrario[Permos][20];
int main()
{
cout << "Permos = " << Permos << endl;
//DEFINISCO UN GRANDE ARRAY CHE CONTENGA TUTTE LE PERMUTAZIONI
//definisco una funzione che mi farà un certo lavoro;
//definisco il numero di cobinazioni
for(int i=0; i<Permos; i++) {for(int j=0; j<20; j++) {Cifrario[i][j] = 0;} }
//ora riempio il cifrario in modo da scrivere un array BINARIO di 20 slot
for(int i=1; i<Permos; i++) {Cifrario[i][20]++;
for(int j=20; j>0; j--) {if(Cifrario[i][j]>1) {Cifrario[i][j-1]++; Cifrario[i][j] = 0;} } //partendo dalla fine per arrivare all'inizio!
for(int j=0; j<20; j++) {Cifrario[i+1][j] = Cifrario[i][j];}
}
return 0;
}