Try it here
Subscribe
delete and free

delete operator and free() function in C++

difference_between_delete_and_free()_in_c++

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.

free() function

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 operator

delete is an operator in C++ programming language, it is used to free the run time allocated memory.

delete pointer_name;

Differences between delete operator and free() function

Both are used for same purpose, but still they have some differences, the differences are:

  1. delete is an operator whereas free() is a library function.
  2. delete free the allocated memory and calls destructor. But free() de-allocate memory but does not call destructor.
  3. delete is faster than free() because an operator is always faster than a function.

Example :

#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; 
} 

Writer profile pic

Uk01 on Jun 02, 2015 at 12:06 am


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.



Post Comment

Comments( 0)

×

Forgot Password

Please enter your email address below and we will send you information to change your password.