devxlogo

Effects of Operator delete

Effects of Operator delete

Question:
Why, after deleting an object I allocated dynamically, is the pointer still there? What exactly have I deleted and what would happen if I assigned a new value to the pointer without nullifying it first?

Answer:
You delete the object, not the pointer. The pointer’s value doesn’t chang when you delete the object to which it points. You don’t have to nullify the pointer after its object has been deleted; simply assign the new object’s address to it:

int * p1= new int;delete p1; p1= new int; // fine

Nullifying a pointer after applying delete can be useful if you want to guarantee that other parts of the program don’t attempt to delete it for the second time:

int * p1= new int;delete p1; // many lines of codedelete p1; //disaster! deleted p1 for the second time

By contrast, deleting a null pointer is harmless:

delete p1;p1=0;delete p1; // ok, p1 is nulldelete p1; // ok, null pointer deletion has no effect

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist