[C con Clase] Liberar memoria de una estructura
Adrian Ferreres Esteller
raro82 en hotmail.com
Mar Dic 4 18:02:30 CET 2007
Hola Lista:
Tengo un problema sobre liberar memoria para vosotros; a ver si alguien puede aportar un poco de luz.
Supongamos la siguiente estructura:
struct stBaseDatos {
char * Datos;
char * Datos_Inicio;
}
typedef struct stBaseDatos strBaseDatos
Donde Datos es un puntero que apunta a una cadena enorme con un monton de a tratar y Datos_Inicio es un puntero fijo a la dirección inicial de esta cadena. Dentro de la funcion main hay 3 funciones:
int Inicializa_datos (strBaseDatos ** Informacion);
int Trato_datos (strBaseDatos * Informacion);
void Libera_datos (strBaseDatos **Informacion);
La primera reserva memora para guardar la informacion de la cadena, la segunda trata la cadena y la tercera libera la memoria reservada y se llaman asi:
strBaseDatos * Informacion;
....
Inicializa_datos (&Informacion);
Trato_datos (Informacion);
Libera_datos (&Informacion);
El código de Inicializa_datos es el siguiente:
....
Informacion = (strBaseDatos *) malloc(sizeof(strBaseDatos));
Informacion->Datos = (char *)malloc (sizeof(char)*TAMANYO_DATOS);
Informaion->Datos_Inicio = Informacion->Datos;
....
El código de Libera_datos es el siguiente:
...
free ((*Informacion)->Datos_Inicio);
free (*Informacion);
....
El resultado de todo esto es que la memoria no se libera. La informacion a la que apunta Datos_Inicio continua estando ahi. ¿Alguien sabe porque no me funciona el free?
Muchas gracias por vuestro tiempo
_________________________________________________________________
Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para estar a la última
http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenance&Brand=WL&RU=http%3a%2f%2fmail.live.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071204/c1975cc5/attachment.html>
Más información sobre la lista de distribución Cconclase