delete (C++)

From Wikipedia, the free encyclopedia


In the C++ programming language, the delete operator returns memory allocated by new back to the heap. A call to delete must be made for every call to new to avoid a memory leak. After calling delete the memory object pointed to is invalid and should no longer be used. Many programmers assign NULL to pointers after using delete to help minimize programming errors. Note, however, that deleting a NULL pointer has no effect, so it is not necessary to check for NULL before calling delete.

Example code snippet:

int *p_var = NULL;     // new pointer declared
p_var = new int;       // memory dynamically allocated
 
/* .......
other code
........*/
 
delete p_var;          // memory freed up
p_var = NULL;          // pointer changed to NULL

Arrays allocated with new can be similarly deallocated with delete []:

int size = 10;
int *p_var = NULL;     // new pointer declared
p_var = new int [size];// memory dynamically allocated
 
/* .......
other code
........*/
 
delete [] p_var;       // memory freed up
p_var = NULL;          // pointer changed to NULL