Установка указателя на NULL (или ноль) после удаления не обязательна.Однако это хорошая практика.Во-первых, вы не сможете получить доступ к некоторым случайным данным, если впоследствии разыменуете указатель.Кроме того, вы часто будете находить код со следующим:
if(ptr)
{
delete ptr;
ptr = NULL;
}
Таким образом, установка указателя на NULL гарантирует, что он не будет удален дважды.
Наконец, вы можете найти код, подобныйэто:
void foo(bar *ptr)
{
if(!ptr) throw Exception(); // or return, or do some other error checking
// ...
}
И вы, вероятно, хотели бы, чтобы эта проверка безопасности была пройдена.