raga avrei un altra domanda:
avendo questa funzione che si occupa di deallocare una matrice mxn:
codice:
void dealloca_matrice(int **matrice, int m, int n)
{
    for(int i=0;i<m;i++)
        delete[] matrice[i];
    delete[] matrice; //cosa cambia se scrivo delete[] *matrice; ? durante l'esecuzione non noto differenze
}
come mai se dealloco una matrice mxn con m>n l'ultima riga della matrice non viene deallocata?
es:
passo una matrice 3x2:
1 2
3 4
5 6
dopo la deallocazione, se stampo la matrice mi esce:
139320 134688
134688 139320
5 6

come mai?
da notare inoltre che l'elemento 0,0 ha lo stesso valore dell'elemento 1,1 e l'elemento 0,1 ha lo stesso valore dell'elemento 1,0 e questo succede sempre...non è stranissimo?