When we want to free a memory allocated to a pointer to an object then "delete" is used.
int * p;
p=new int;
// now to free the memory
delete p;
But when we have allocated memory for array of objects like
int * p= new int[10]; //pointer to an array of 10 integer
then to free memory equal to 10 integers:
delete []p;
NOTE: One can free the memory even by delete p;
, but it will free only the first element memory.