Estoy tratando de ganar algo de ahorro de memoria en un programa C++ y quiero saber si puedo usar bloques como un alcance para las variables (como en Perl). Digamos que tengo una enorme objeto que realiza algunos cálculos y da resultado, hace que tiene sentido hacer:¿Puedo usar bloques para administrar el alcance de las variables en C++?
InputType input;
ResultType result;
{
// Block of code
MyHugeObject mho;
result = mho.superHeavyProcessing();
}
/*
My other code ...
*/
¿Puedo esperar que el objeto que se ha destruido al salir del bloque?
Estrictamente hablando, llamar a destructor no es lo mismo que liberar la memoria utilizada para el almacenamiento de objetos. – Constantin
Creo que es seguro asumir que la palabra * enorme * en la pregunta significa que el objeto ha asignado la mayor cantidad de memoria en el montón y desea que se libere (por ejemplo, un vector). –
Lo siento, pero creo que MyHugeObject está asignado en la pila y no en el montón a menos que se realice un malloc explícito. Por favor corrígeme si estoy equivocado. – 0fnt