In C++, delete operator should only be used either for the pointers pointing to the memory allocated using new operator or for a NULL pointer, and free() should only be used either for the pointers pointing to the memory allocated using malloc() or for a NULL pointer.
Basically, it was used in C programming language, to free the run time allocated memory, it is a library function and it can also be used in C++ for the same purpose. free() is declared in stdlib.h header file.
free(pointer_name);
delete is an operator in C++ programming language, it is used to free the run time allocated memory.
delete pointer_name;
Both are used for same purpose, but still they have some differences, the differences are:
#include<stdio.h> #include<stdlib.h> int main() { int x; int *ptr1 = &x; int *ptr2 = (int *)malloc(sizeof(int)); int *ptr3 = new int; int *ptr4 = NULL; /* delete Should NOT be used like below because x is allocated on stack frame */ delete ptr1; /* delete Should NOT be used like below because x is allocated using malloc() */ delete ptr2; /* Correct uses of delete */ delete ptr3; delete ptr4; getchar(); return 0; }
If you like dEexams.com and would like to contribute, you can write your article here or mail your article to admin@deexams.com . See your article appearing on the dEexams.com main page and help others to learn.