Il differenza principale tra l'operatore new e delete in C ++ è quello new è usato per allocare memoria per un oggetto o un array mentre, delete è usato per deallocare la memoria allocata usando il nuovo operatore.
Esistono due tipi di memoria come memoria statica e dinamica. Assumi una dichiarazione come int a; array int [10]; il programmatore sa già quanta memoria richiedono queste variabili. Questa memoria è una memoria statica. A volte è difficile determinare la quantità di memoria necessaria per memorizzare i dati. Pertanto, la memoria dovrebbe essere determinata in fase di esecuzione. Questo tipo di memoria è una memoria dinamica. Usiamo gli operatori nuovi e cancelli in queste situazioni.
1. Cos'è il nuovo operatore in C++
- Definizione, Funzionalità
2. Cosa è l'operatore di cancellazione in C++
- Definizione, Funzionalità
3. Qual è la differenza tra nuovo e cancella operatore in C++
- Confronto tra le principali differenze
C ++, cancella operatore, allocazione memoria, nuovo operatore
Il nuovo operatore assegna la memoria. Fare riferimento al programma seguente.
Figura 1: programma C ++ 1 con nuovo operatore
Secondo il programma di cui sopra, il ptr è un puntatore di tipo intero. Nella riga 7, ptr punta alla memoria di tipo int. Nella riga 8, il valore ptr punta a diventare 10. La stampa * p darà il valore 10.
Allo stesso modo, è possibile creare array usando new come segue.
Figura 2: programma C ++ 2 con nuovo operatore
Secondo il programma di cui sopra, ptr è un puntatore di tipo intero. Nella riga 8, ptr punta alla memoria del tipo int che può memorizzare 5 elementi interi. Quindi, i valori interi sono memorizzati nell'array. Infine, il ciclo itera attraverso l'array e stamperà i valori.
Inoltre, è possibile creare nuovi oggetti usando il nuovo operatore. Fare riferimento all'esempio seguente.
Figura 3: programma C ++ 3 con nuovo operatore
La classe è Student, e ha il costruttore. Nel programma principale, ptr è un puntatore del tipo Studente. Nella riga 13, viene chiamato il costruttore. Pertanto, viene creato un oggetto tipo Studente. L'istruzione cout all'interno del costruttore Studente viene eseguita e tale istruzione viene visualizzata sulla console.
L'operatore delete aiuta a deallocare la memoria. Fare riferimento al programma seguente.
Figura 4: programma C ++ 1 con operatore di cancellazione
Nel programma precedente, ptr è un puntatore di tipo int. Nella riga 7, punta alla memoria di tipo int mentre nella riga 8, viene assegnato il valore 10. Inoltre, nella riga 11, ptr viene eliminato.
Figura 5: programma C ++ 2 con operatore di cancellazione
Secondo il programma di cui sopra, ptr è un puntatore di tipo intero. Nella riga 8, ptr punta alla memoria del tipo int, che può memorizzare 2 elementi interi. Quindi, i valori interi sono memorizzati nell'array. Alla riga 12, ptr è cancellato. L'operatore delete rilascia la memoria.
In breve, new è un operatore in C ++ che alloca memoria per un oggetto o una matrice di oggetti. Al contrario, delete è un operatore in C ++ che rilascia un blocco di memoria precedentemente assegnato per un oggetto creato utilizzando il nuovo operatore. Queste definizioni contengono la differenza principale tra l'operatore new e delete in C++.
Inoltre, il nuovo operatore consente di allocare memoria per un array o un oggetto mentre l'operatore delete consente di deallocare la memoria allocata a un particolare oggetto o array. Quindi, questa è un'altra differenza tra l'operatore new e delete in C++.
La differenza fondamentale tra l'operatore new e delete in C ++ è che new viene usato per allocare memoria per un oggetto o un array mentre delete viene usato per deallocare la memoria allocata usando il nuovo operatore.
1. Nuovo OPERATORE IN C - 47, Codearchery, 6 marzo 2017, disponibile qui.
2. Elimina operatore in C - 48, Codearchery, 22 marzo 2017, disponibile qui.