 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Vie 09 Dic, 2005 1:07 am Asunto: Duda sobre liberacion de memoria |
|
|
Tengo una duda:
Cuando creamos dinamicamente cualquier objeto (new), al salir del programa, ¿Se libera esta cantidad de memoria?
Yo lo que hago es, si creo dinamicamente un objeto que va a ser temporal, libero la memoria (delete) cuando ya no lo necesito. Pero si este objeto lo voy a necesitar durante todo el programa, no lo libero ya que pienso que al terminar la aplicacion se libera toda la memoria reservada por el programa.
Estoy en lo cierto o tengo una mala practica.
Un saludo. |
|
| Volver arriba |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Mie 14 Dic, 2005 5:07 pm Asunto: |
|
|
Hola kalux, como bien dices se trata de una mala práctica. Mientras no exista un buen recolector de basura en el sistema operativo sobre el que corran tus programas estarás dejando porciones de memoria "inutilizados" hasta que reinicies el ordenador.
Una buena práctica es poner en marcha, de vez en cuando, el CodeGuard (Project/Options.../CodeGuard) del Builder para que te avise si se te olvida liberar la memoria reservada o si accedes a posiciones de memoria que tu programa no ha reservado.
Toda la memoria que reservas es temporal. Su ciclo de vida termina, a lo sumo, cuando finaliza tu programa. Un buen sitio para borrar la memoria reservada dinámicamente es el evento OnClose() del formulario principal de tu aplicación (o OnCloseQuery(), o incluso el destructor del formulario, depende de tus intereses).
Suerte _________________ Ojos ... no son ojos porque los ves, son ojos porque te miran |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Mie 14 Dic, 2005 7:01 pm Asunto: |
|
|
Hola Enrique.
Gracias por los comentarios, tomo nota.
Empezare a utilizar el CodeGuard, que nunca lo he probado. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|