Say I have a pointer like this:
int *thingy;
At some point, this code may or may not be called:
thingy=new int;
How do I know if I can do this:
delete thingy;
I could use a bool
for every pointer and mark the bool as true
whenever the I use new
, but I have many pointers and that would get very unwieldy.
If I have not called new
on thingy
, calling delete
on it would likely cause a crash, right?
I searched around quite a bit but could find no answer that clearly fit my situation.
EDIT: I need to be able to delete
the pointers as many times as I like without the pointers necessarily pointing to any data. If this is impossible I'll have to re-write my code.