Don't check a pointer before deleting it, just delete it.
// don't do this
if ( p ) delete p;
// just do this
delete p;
// ie: this doesn't crash or do anything bad
int* p = NULL;
delete p;
// but you probably need something like this
#define NUL_DEL( p ) { delete p; p = NULL; }
NUL_DEL(p)
But seriously, this isn't the dark ages, you really want to be doing this.
std::shared_ptr<int> p;
...
p.reset(); // no need to set to NULL (or rather null_ptr)
Comments: 0