История изменений
Исправление annulen, (текущая версия) :
Напомню, что значение указателя после вызова free() является неопределённым согласно стандарту.
В стандарте ничего такого нет. Функция free() не может изменить значение указателя, так как он передается в нее по значению.
а значит единственное что можно сделать – занулить его
Нет. Ему можно присвоить другое значение, или просто не использовать. Занулять переменную, которая больше не будет использоваться - бессмысленная трата циклов.
Так вот, почему даже таких банальных вещей нет?
По тем же причинам, по которым в C нет «банальных» вещей вроже проверки выхода за пределы массива. Потому что в корректной программе таких ситуаций не возникнет, но подобные «защиты от дурака» будут замедлять ее работу.
Исходная версия annulen, :
Напомню, что значение указателя после вызова free() является неопределённым согласно стандарту.
В стандарте ничего такого нет. Функция free() не может изменить значение указателя, так как он передается в нее по значению.
а значит единственное что можно сделать – занулить его
Нет. Ему можно присвоить другое значение, или просто не использовать. Занулять переменную, которая больше не будет использоваться - бессмысленная трата циклов.
Так вот, почему даже таких банальных вещей нет?
По тем же причинам, по которым в C нет «банальных» вещей вроже проверки выхода за пределы массива. Потому что в корректной программе таких ситуаций не возникнет, но проверки будут замедлять ее работу.