C/Visual C - Liberar memoria reservada

 
Vista:

Liberar memoria reservada

Publicado por Daniel (3 intervenciones) el 15/06/2004 13:51:46
Hola.
He hecho un programa el cual sé que tiene un error de memoria, es decir:
- no he liberado memoria previamente reservada.
ó - he liberado una zona de memoria más de una vez.
ó - he liberado una zona de memoria que no ha sido reservada previamente.

PROBLEMA: ¿Cómo puedo saber dónde está el problema, sin volverme loco?
Tengo punteros, listas, matrices dinámicas,...

Un saludo. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Liberar memoria reservada

Publicado por Giselle (4 intervenciones) el 15/06/2004 17:59:00
HOla :
amigo daniel. sinceramente no entendì lo que tratas de decir pordrias explicarlo mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Liberar memoria reservada

Publicado por Daniel (3 intervenciones) el 15/06/2004 22:31:33
Yo te lo explico encantado, jaja.
Es un programa que hay que tengo que hacer como trabajo de curso. Los profesores han creado otro programa que verifica, entre otras cosas, si la memoria que reservas (llamando a calloc, malloc, con punteros, etc) es posteriormente liberada (con free).
Mi programa funciona correctamente pero me da ese error, lo cual quiere decir, como ya dije que:
ó no he liberado memoria previamente reservada.
ó he liberado una zona de memoria más de una vez.
ó he liberado una zona de memoria que no ha sido reservada previamente.

La consulta era, que como puedo verificar si llamo correctamente a free cada una de las veces que lo tengo que hacer, es decir, si libera lo que realmente quiero que libere, o si lo que yo pienso que había reservado es realmente reservado o no.

Espero qeu me haya explicado un poco mejor.
Gracias por tu atención. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Liberar memoria reservada

Publicado por Erick (92 intervenciones) el 16/06/2004 00:32:05
Salu2

Lo unico que te puedo decir es que debes de liverar los apuntadores cuando ya no los ocupas, esto lo puedes hacer al terminar la funcion (en caso de que sean matrices ó apuntadores locales) ó bien antes de terminar la funcion main()

otra cosa que un profesor nos enseño es q seria bueno que despues de liberar la memoria con free, seria bueno asignarle un NULL, para que no hya duda de que ha sido liverado el espacio

Espero que te sea de utilidad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesitas un depurador de memoria(memory debugger)

Publicado por s (16 intervenciones) el 19/06/2004 02:13:26
Hola.

Según veo necesitas el mismo tipo de herramienta que usan tus revisores, el cual se conoce como depurador de memoria o memory debugger en inglés. En la red hay una gran variedad, algunos gratuitos y otros de paga. No te puedo recomendar ninguno porque yo solamente he utilizado el que viene con el Visual C++ 6.0.

Estas son unos cuantos de ellos:

* AntiC AntiC (or JLint)
* Dynamic Leak Check
* Electric Fence
* Fence It
* JProbe
* libcwd
* Memwatch
* MemCheck
* mpatrol
* NJAMD
* Purify
* SPlint Secure Programming Lint
* Valgrind

Un consejo, ¿por que no pones un mensaje en el foro pidiendo que te recomienden un depurador de memoria gratuito (o en versión de prueba) y que sea sencillo de utilizar?.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar