Salve a tutti! 
Vorrei chiedere se qualcuno è tanto gentile da spiegarmi bene l'uso delle funzioni new e delete nell'ambito dell'allocazione dinamica.
In particolare quello che non ho capito è la differenza tra delete e delete[].
Se ho ben capito bene delete serve a cancellare oggetti semplici tipo un'istanza di un intero o un vettore mentre delete[] si usa per cancellare dei vettori di puntatori (?)
Quindi se devo allocare dinamicamente un vettore e poi dopo averlo stampato a video disallocarlo dovrei fare :
codice:
int *vet;
int n; // riempimento=dim massima
//Richiesta del riempimento/dimensione massima che sarà allocata run time
cout<<"Quanti elementi si voglioni inserire nel vettore?\n";
cin>>n;
//Alloco dinamicamente il vettore
vet = new int[n];
//Specificazione tramite tastiera degli elementi dell'array dinamico
for(int i=0;i<n;i++){
cout<<"Inserire l'elemento "<<i+1<<endl;
cin>>*(vet+i);
}
//Stampa Del Vettore
for(int i=0;i<n;i++)
cout<<*(vet+i)<<endl;
//Deallocazione del Vettore
delete vet;
Giusto?
Mentre se devo allocare dinamicamente una matrice e poi dopo averla stampata a video disallocarla dovrei fare :
codice:
int **matrix;
int righe;
int colonne;
//Richiesta all'utente di righe e colonne
cout<<"Specificare righe\n";
cin>>righe;
cout<<"Specificare Colonne\n";
cin>>colonne;
//Allocazione Dinamica Matrice
matrix = new int*[righe]; //cioe' creo un array di puntatori
for(int i=0;i<righe;i++)
matrix[i]=new int[colonne]; //creo ora un array di interi
//Specificazione tramite tastiera degli elementi della matrice dinamica
for(int i=0;i<righe;i++)
for(int j=0;j<colonne;j++){
cout<<"Inserire l'elemento della righa "<<i+1<<" e della colonna "<<j+1<<endl;
cin>>matrix[i][j];
}
//Stampa Della Matrice
for(int i=0;i<righe;i++){
for(int j=0;j<colonne;j++){
cout<<matrix[i][j]<<" ";
}
cout<<endl;
}
//Deallocazione Matrice
for(int i=0;i<righe;i++)
delete[]matrix[i]; //Mi cancello l'array di interi
delete[]matrix; //Mi cancello l'array di puntatori.
Sarei lieto se qualcuno di voi potesse dirmi se quanto ho detto e giusto e chiarirmi meglio l'uso di new e delete
,grazie in anticipo