В моей функции C ++ main
, например, если бы у меня был указатель на переменную, которая использует кучу памяти (в отличие от стековой памяти) - это автоматически освобождается после выхода из моего приложения? Я бы предположил, что так.
Несмотря на это, является ли хорошей практикой всегда удалять выделения кучи, даже если вы думаете, что они никогда не будут использоваться в ситуации, когда память автоматически освобождается при выходе?
Например, есть ли смысл делать это?
int main(...)
{
A* a = new A();
a->DoSomething();
delete a;
return 0;
}
Я думал может быть в случае, если я произвожу рефакторинг (или кто-то другой рефакторинг) этот код и помещу его в другое место в приложении, где delete
действительно необходим.
Помимо ответа Брайана Р. Бонди (который конкретно говорит о последствиях в C ++), у Пола Томблина также есть хороший ответ на специфический для C вопрос , в котором также говорится о деструкторе C ++. .