L'errore è all'inizio e sinceramente non so come faccia il programma a funzionare per qualunque numero ...
Qui dim non è definito o è uguale a 0, per cui l'allocazione che fai non ha alcun significato.codice:int dim, i, j; int ** m = new int*[dim];
Codice corretto:
Così dovrebbe andare.codice:#include <iostream> using namespace std; int main(){ int dim, i, j; int **m; cout << "Choose the dimension of the squared matrix: "; cin >> dim; m = new int*[dim]; for(i=0;i<dim;i++){ m[i] = new int[dim]; } for(i=0;i<dim;i++){ // Righe for (j=0;j<dim;j++){ // Colonne m[i][j] = i*dim + (j + 1); } } for(i=0;i<dim;i++){ // Righe for (j=0;j<dim;j++){ // Colonne cout << " " << m[i][j] << " "; } cout << endl; } return 0; }

Rispondi quotando