En mi función C++ main
, por ejemplo, si tuviera un puntero a una variable que utiliza memoria de pila (a diferencia de la memoria de pila), ¿esto se desasigna automáticamente después de que se cierra mi aplicación? Yo asumiría eso.¿Hay alguna razón para llamar a eliminar en C++ cuando un programa sale de todos modos?
Aun así, ¿es una buena práctica eliminar siempre las asignaciones de pila incluso si piensa que nunca se utilizarán en una situación en la que la memoria se desasigna automáticamente al salir?
Por ejemplo, ¿hay algún punto para hacer esto?
int main(...)
{
A* a = new A();
a->DoSomething();
delete a;
return 0;
}
estaba pensando tal vez en caso de que refactorizar (o alguien refactors más) que el código y lo pone en otra parte de la aplicación, donde delete
es realmente neccecary.
Además de la respuesta de Brian R. Bondy (que habla específicamente sobre las implicaciones en C++), Paul Tomblin también tiene un good answer to a C specific question, que también habla sobre el destructor de C++.
El duplicado mencionado es sobre C, que se pierde en alguna información importante sobre el destructor que es un problema en C++. –
@Brian, mi respuesta al duplicado también menciona destructores (ahora). Mi sentimiento de que este debería ser eliminado sigue en pie. –
No estoy seguro de lo que quiere decir sobre destructor - aclare. –