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

David Inocente Romero Escalona di.romero en hotmail.es
Dom Ago 2 23:22:57 CEST 2009


Sí se destruye el objeto "objetoA".

 

Gracias.
 


From: ddfire en gmail.com
Date: Sun, 2 Aug 2009 15:18:31 -0300
To: cconclase en listas.conclase.net
Subject: Re: [C con Clase] [C con clase] ¿exit() libera memoria dinámica?

pone un  "cout << "me estoy destruyendo << endl;" dentor del destructor y te vas a enterar.
David 


El 1 de agosto de 2009 19:09, David Inocente Romero Escalona <di.romero en hotmail.es> escribió:


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! 
_______________________________________________
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


-- 
(\__/) 
(='.'=)This is Bunny. Copy and paste bunny into your 
(")_(")signature to help him gain world domination. 


_________________________________________________________________
Entérate de todas las noticias al instante ¡Suscríbete al servicio de Alertas MSN!
http://especiales.es.msn.com/noticias/msninforma.aspx
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090802/510a0146/attachment.html>


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