LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

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

А delete это оператор языка. И он вполне может напрямую взаимодействовать с переменной, в том числе обнулять её. То что там тот же free вызывается - особенность реализации компилятора.

Исходная версия KivApple, :

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

А delete это оператор языка. И он вполне может напрямую взаимодействовать с переменной, в том числе обнулять её. То что там тот же free вызывается - особенность реализации компилятора.