Memoria heap ocupada

Agus
11 de Septiembre del 2003
Alguien sabe como puedo saber si toda la memoria heap q reservo es liberada al final del programa? (quiero saber si me falta hacer algun delete o free)

Gracias.

chuidiang
11 de Septiembre del 2003
Cuando sales del programa no es problema, puesto que al terminar el programa ya la liberará el sitema toda la memoria reservada.

Es más grave para programas que no terminan y corren más o menos continuamente, ya que si no se libera todo, al final se pueden comer la memoria.

Para saber si la has liberado toda, echa un ojo en www.geocities.com/chuidiang en la parte de trucos cpp. Hay uno que permite redefinir los new y delete globales de una forma sencilla, de forma que ademas de reservar y liberar memoria, lleven un contador de memoria reservada y te digan si te dejas algo. Si necesitas algo de ayuda para implementar ese truquillo, avisame.

Se bueno.

Agus
11 de Septiembre del 2003
Es buena idea, lo q pasa que ya tengo implementada mi aplicacion y no quiero retocarala. Necesito algo mas comodo y rapido.

Gracias de todas formas

chuidiang
11 de Septiembre del 2003
No necesitas rehacer la aplicacion. Hazte un fichero con la redefinicion de new y delete y compilalo como librería. Si no quieres meter debugger, haz que new y delete, ademas de reservar memoria e incrementar el contador, lo escriban en pantalla.

Unicamente tienes que relinkar tu programa añadiendo esa librería al final y ejecutarlo, con debugger si no has puessto los print del contador.

Si te parece demasiado y tu programa corre más o menos de continuo, lo que puedes hacer es lanzarlo y vigilarlo su tamaño con el administrador de tareas (o comando ps en linux) durante un tiempo mas o menos largo, para ver si va creciendo.

Se bueno.