Я начну, сказав, использовать интеллектуальные указатели, и вам никогда не придется беспокоиться об этом.
В чем проблемы со следующим кодом?
Foo * p = new Foo;
// (use p)
delete p;
p = NULL;
Это было вызвано ответом и комментариями к другому вопросу. Один комментарий из Нейл Баттерворт произвел несколько upvotes:
Указатели указаний на NULL после удаления не являются универсальной хорошей практикой в С++. Бывают моменты, когда это хорошо, и времена, когда это бессмысленно и может скрывать ошибки.
Есть много обстоятельств, когда это не поможет. Но, по моему опыту, это не повредит. Кто-то просветит меня.