Alcune inesattezze nel metodo Crea_matrice, l'errore effettivamente era nella creazione della matrice.
inizializza sempre le variabili, mi riferisco a **g e n nella main(), che non fa mai male.codice:void sudoku::Crea_matrice(int **&g,int &n) // devi passare entrambe le variabili per riferimento { char *nomefile=new char[260]; // 10 char sono troppo pochi, // per i nomi dei file meglio usarne almeno 260 cout<<"Inserire il nome del file: "; cin>>nomefile; ifstream fin(nomefile); if( ! fin.is_open() ) // controllo che il file sia aperto return; fin>>n; // Quì ci vorrebbe un controllo sulla matrice **g, e se esiste già, cancellarla. g = new int* [n]; for( int i=0; i<n; i++ ) g[i] = new int [n]; for( int i=0; i<n; i++ ) { for( int j=0; j<n; j++ ) fin>>g[i][j]; } fin.close(); delete [] nomefile; // delete g; // la memoria di una matrice non rilascia così, ma poi... Perché cancellare la matrice appena creata ? }![]()

Rispondi quotando