Расчечатайте указатель до и после, станет понятнее
А лучше не использовать new/delete
Нужно пользоваться unique_ptr.
лучше не использовать new, тогда не придётся использовать delete. Это делают для проверки, что указатель ни на что не указывает
Я понимаю, но вопрос не в этом.
Именно в этом. Обнулять нужно для безопасного переиспользования указателя, а с unique_ptr переиспользование безопасно "из коробки".
В деструкторе это не всегда имеет смысл, если это какая-то переменная, которая не уничтожается сразу, после удаления памяти, на которую указывала, то тоже смысла не имеет
Я бы после delete всегда записывал в указатель nullptr, чтобы не оставлять висячий указатель и далее быть уверенным, что по указателю ничего не лежит и память не надо освобождать.
Если до C++17, то new использовать всё равно придётся.
std::unique_ptr<T> pointer(new T);
std::make_unique - начиная с 14 стандарта
Да, ошибся. В C++11 new был нужен.
понятно, ну фактически это не имеет смысла делать в деструкторе
Обсуждают сегодня