Qual è la differenza tra l'operatore new e delete in C ++

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.

Aree chiave coperte

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

Parole chiave

C ++, cancella operatore, allocazione memoria, nuovo operatore

Cosa c'è di nuovo in C++

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.

Cos'è l'eliminazione in C++

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.

Differenza tra nuovo e cancella Operatore in C++

Definizione

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++.

uso

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++.

Conclusione

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.

Riferimento:

1. Nuovo OPERATORE IN C - 47, Codearchery, 6 marzo 2017, disponibile qui.
2. Elimina operatore in C - 48, Codearchery, 22 marzo 2017, disponibile qui.