uso un puntatore per evitare conflitti nella memoria durante l'esecuzione dei metodi da parte di più processi contemporaneamente.codice:template <class T> Matrix2D<T> Matrix2D<T>::trasposta() { if (matrice_temp!=0) delete(matrice_temp); matrice_temp= new Matrix2D<T>(righe, colonne); //scambia il numero di righe con il numero di colonne for(int i = 0; i < colonne; i++) { for (int j = 0; j < righe; j++) (*matrice_temp).matrice[j][i] = matrice[i][j]; } return *matrice_temp; }
la seconda volta che viene richiamato il metodo dà errore (access violation) quando fa la delete
ho notato che se metto nel controllo == funziona, ma non ha senso.
il puntatore nel costruttore viene inizializzato = 0.
Lo stesso controllo c'è anche nel distruttore ma dà errore anche lì.