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

David fire ddfire en gmail.com
Jue Jul 30 19:05:32 CEST 2009


se liberara la memoria cuando el proceso termine.
el sistema operativo la va a liberar.
David

El 30 de julio de 2009 12:58, David Inocente Romero Escalona <
di.romero en hotmail.es> escribió:

>  Utilizo el operador predefinido "new" de C++.
>
> Pero mi objetivo al usar la función "exit()" no es liberar memoria, sino
> terminar el programa.
>
> En concreto, se trata de una aplicación gráfica OpenGL que utiliza el
> toolkit GLUT. Con dicho toolkit, el programa nunca termina (pues hay un
> bucle principal infinito que se encarga de ir capturando y manejando
> diversos eventos). Entonces, para poder finalizar el programa, no queda
> más remedio que usar la función "exit()" para matar al proceso. En dicha
> aplicación creo objetos 3D que pertenecen a clases C++ que reservar memoria
> dinámicamente cuando crean el objeto (para almacenar los vértices y los
> vectores normales del objeto OpenGL). Esas clases tiene el destructor
> definido e implementado correctamente para liberar la memoria dinámica que
> se haya podido reservar. Sin embargo, nunca elimino dichos objetos porque
> siempre tienen que estar vivos mientras la aplicación se está ejecutando. Mi
> pregunta viene de aquí. ¿al llamar a la función "exit()" se liberará esa
> memoria reservada dinámicamente (aunque no haya eliminado explícitamente a
> dicho objetos)?
>
> La única posible solución que se me ocurre es utilizar la función
> "atexit()" para registrar funciones que se encarguen de eliminar dichos
> objetos antes de que finalmente se mate al proceso. Pero, ¿es esto
> necesario?
>
> Muchas gracias.
>
>
> ------------------------------
> From: memmaker650 en gmail.com
> To: cconclase en listas.conclase.net
> Date: Thu, 30 Jul 2009 10:49:33 +0200
> Subject: Re: [C con Clase] [C con clase] ¿exit() libera memoria dinámica?
>
> Para liberar memoria dinamica primero debes de decirnos que metodo has
> usado de reserva de memoria, no obstante ninguno de los 2 métodos tiene como
> solución exit(). Si usas malloc() para reserva de memoria se usa free() para
> liberar la memoria. Mientras que si usas new() , la porción de memoria se
> libera con delete(). Busca más información por la red si tienes alguna
> duda.
>
> Espero haber contestado a tu pregunta.
>  El 29/07/2009, a las 22:51, David Inocente Romero Escalona escribió:
>
>  Hola,
>
> Me preguntaba si la función exit() de la biblioteca estándar de C++ libera
> la memoria dinámica que se haya reservado antes de matar al proceso que
> ejecuta el programa.
>
> Si no lo hace, ¿puede ocurrir que se queden reservados trozos de memoria
> que ya no se puedan volver a usar por otros procesos hasta que se reinicie
> el ordenador?
>
> Gracias.
>
>
> ------------------------------
> Charlas más divertidas con el nuevo Windows Live Messenger<http://download.live.com/>
> _______________________________________________
> 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
>
>
>  Best regards
> Jorge
>
>
>
>
> ------------------------------
> Charlas más divertidas con el nuevo Windows Live Messenger<http://download.live.com>
>
> _______________________________________________
> 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.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090730/7d264cad/attachment.html>


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