[C con Clase] [C con clase] ¿exit() libera memoria dinámica?

David Inocente Romero Escalona di.romero en hotmail.es
Dom Ago 2 00:09:59 CEST 2009


Gracias por el programa.

 

Leyendo un tutorial del toolkit FLTK en la web me ha surgido otra duda sobre este tema.

 

Si se tiene este código C++:

 

main.cpp

--------

 

#include "ClaseA.h"

 

ClaseA objetoA(100);

 

int main(int argc, char** argv, char** envp)

{

    return 0;

}

 

 

ClaseA.h

--------

 

#ifndef ClaseA_Header

#define ClaseA_Header

 

class ClaseA

{

    private:

 

        int* p;

 

    public:

 

        ClaseA(unsigned int n);

        ~ClaseA();

};

 

#endif

 

 

ClaseA.cpp

----------

 

#include "ClaseA.h"

 

ClaseA::ClaseA(unsigned int n)

{

    this->p = new int[n];

}

 

ClaseA::~ClaseA()

{

    delete (this->p);

}


 

¿al terminar el programa de forma normal (es decir, al terminar la función "main()") se envía un mensaje destructor de la clase "ClaseA" al objeto "objetoA"?

 

Es que he leído que si se crean objetos globales (fuera de toda función, incluida la función "main()"), cuando termina el programa de forma normal no se destruyen dichos objetos.

 

¿es esto cierto?

 

 

Muchas gracias.

 

 
> Date: Sat, 1 Aug 2009 00:03:57 +0200
> From: programante en gmail.com
> To: cconclase en listas.conclase.net
> Subject: Re: [C con Clase] [C con clase] ¿exit() libera memoria dinámica?
> 
> David Inocente Romero Escalona escribió:
> > Una última duda sobre el tema de la reserva dinámica de memoria.
> > 
> > ¿y si el programa termina anormalmente (por ejemplo, porque se aborta
> > llamando a la función "abort()" ó porque recibe una señal de aborto y
> > no la maneja)? ¿se sigue ejecutando el código objeto que añade el
> > compilador de C++ para destruir todos los objetos que se hayan creado
> > y sigan vivos?
> Si la salida es anormal, se cierra el programa directamente. Intentar
> ejecutar código de "limpieza" podría llevar a la ejecución de código
> malicioso, por ejemplo.
> 
> > Por cierto, ¿conoces algún programa/herramienta para win32 que permita
> > saber si un cierto proceso tiene "fugas de memoria" (memory leaks)?
> > 
> > Saludos.
> 
> Hay un programa de Microsoft llamado Application Verifier que ayuda a ello.
> 
> 
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

_________________________________________________________________
¿Quieres los nuevos emoticonos en 3D? ¡Descárgatelos gratis!
http://www.vivelive.com/emoticonos3d/index2.html
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090802/1c41bd38/attachment.html>


Más información sobre la lista de distribución Cconclase