Выделение памяти, на которую указывает указатель, не приводит к обнулению указателя и не приводит к обнулению выделенной памяти.
Выделение означает только то, что вы сообщаете (системе) распределитель, что вы больше не используете эту память и что он может использовать ее для других запросов выделения. Распределитель не должен каким-либо образом изменять память.
Разыменование указателя, который указывает на память, которую вы освободили при вызове delete[]
, вызывает неопределенное поведение. Это не значит, что вы будете наблюдать какое-то конкретное поведение, это значит, что все может случиться. Например, может случиться так, что delete
не повлияет на память вашей программы, но это по-прежнему не позволяет вам продолжать его использовать.