Do I need to delete a pointer if I haven't assigned it a new value?

Joseph Little picture Joseph Little · Dec 4, 2012 · Viewed 7.7k times · Source

Just a quick question:

Do I need to delete a pointer if I haven't actually assigned a new value to it?

What I've done if created a pointer and then handed it a reference to something like so:

Planet *planetPointer;

planetPointer = &earth;

Do I need to delete this pointer or can I just set it to null?

Answer

Luchian Grigore picture Luchian Grigore · Dec 4, 2012

You don't need to delete it, and, moreover, you shouldn't delete it. If earth is an automatic object, it will be freed automatically. So by manually deleting a pointer to it, you go into undefined behavior.

Only delete what you allocate with new.