La funzione per cambiare il valore di matrice, deve ricevere matrice per riferimento.
Non devi deallocare la nuova matrice trasposta altrimenti la funzione diventa inutile, in ogni caso quella deallocazione non è effettuata correttamente.
codice:void trasposta_matrice(int **&matrice, int &m, int &n) { int **trasposta = alloca_matrice(n, m); for(int i=0;i<m;i++) for(int j=0;j<n;j++) trasposta[j][i] = matrice[i][j]; dealloca_matrice(matrice, m, n); matrice = trasposta; int t=m; m=n; n=t; stampa_matrice(matrice, n, m); }

Rispondi quotando