Что это за маньяк с нуля? Есть и другие номера!
Почему свободный указатель должен содержать ноль больше, чем любое другое выделенное значение?
Практически, в моем коде C ++ я часто использую сторожевые объекты и при освобождении указателя сбрасываю его не в ноль, а в сторожевой таймер. Это дает дополнительное преимущество, заключающееся в том, что методы объекта могут по-прежнему вызываться с существующим интерфейсом, и это намного более безопасно и эффективно, чем сброс указателя на ноль (это позволяет избежать проверки объектов на ноль, я просто называю объект).
Если бы функция free like, скажем, zfree (void * & p) установила бы p на ноль, это запретило бы мой сторожевой стиль (или, по крайней мере, не помогло бы).
И как указывают другие, какой смысл сбрасывать указатель на ноль, если он выходит из области видимости? Просто бесполезный код. А что, если есть другие указатели, содержащие тот же адрес и т. Д.