История изменений
Исправление KivApple, (текущая версия) :
free - функция стандартной библиотеки. В принципе ничего не мешает даже написать её самому. Она полностью равноправна с обычными функциями. И поэтому она не может обнулить указатель, который ей передали. Ну либо это должна быть не free(void *ptr), а free(void **ptr) и вызывать её придётся иначе.
А delete это оператор языка. И он вполне может напрямую взаимодействовать с переменной, в том числе обнулять её. То что там тот же free вызывается - особенность реализации компилятора.
Исходная версия KivApple, :
free - функция стандартной библиотеки. В принципе ничего не мешает даже написать ему самому. Она полностью равноправна с обычными функциями. И поэтому она не может обнулить указатель, который ей передали. Ну либо это должна быть не free(void *ptr), а free(void **ptr) и вызывать её придётся иначе.
А delete это оператор языка. И он вполне может напрямую взаимодействовать с переменной, в том числе обнулять её. То что там тот же free вызывается - особенность реализации компилятора.