C/Visual C - ¡¡free me cambia cosas!!

 
Vista:

¡¡free me cambia cosas!!

Publicado por Daniel (3 intervenciones) el 17/06/2004 21:12:09
Mi programa funciona correctamente, sin liberar punteros, pero cuando llamo a free al final, para liberar punteros, me cambia (sin hacer nada más) el contenido de otra cosa.
-¿Puede que el puntero esté apuntando a la memoria donde tengo guardado el dato que cambia?
-Free lo único que hace no es ponerlo a NULL, ¿por qué cuando lo pongo yo a NULL directamente ( puntero = NULL ) no hace lo mismo?

Estoy hecho un lío, si me pueden ayudar. Saludos. Daniel.
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:¡¡free me cambia cosas!!

Publicado por Ale (2 intervenciones) el 18/06/2004 03:01:32
Estas completamente seguro de estar liberando el puntero adecuado?
Porque puede que le estes dando free a alguna dirección que recae directamente al dato que mencionas. Generalmente el free se utiliza solamente cuando requieres de memoria dinámica, necesitaria ver tu codigo para saber que esta pasando. Y free no es lo mismo que asignar a NULL tu puntero, hasta donde yo sé, con free le indicas al compilador que puede reutilizar ese espacio de memoria liberado, cuando asignas el NULL, tu apuntador no está almacenando ninguna dirección, pero se mantiene latente su espacio de memoria durante el programa.
Suerte!!!
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:¡¡free me cambia cosas!!

Publicado por ... (2 intervenciones) el 18/06/2004 09:53:14
free como su nombre lo indica sirve para liberar memoria.
asignandole NULL no liberara la memoria, lo que tienes que hacer es usar free y luego asignarle null para que sepas que ya liberaste esa memoria anteriormente asi no tratas de liberarla dos veces.
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