[C con Clase] mal uso del metodo free()

ERVA abraxas_dragon en yahoo.com.mx
Mar Feb 12 02:29:39 CET 2008


Hola gente.

Tengo un problema al momento de liberar memoria, espero me puedan ayudar.

He creado una estructura con los siguientes datos:

*****
typedef struct dataS {
  unsigned char * d;
  unsigned int l;
} DATA

*******

Ahora en el main:

DATA dato1;
DATA dato2;

dato1.d = NULL;
dato1.l = 0;

dato2.d = NULL;
dato2.l = 0;

/*Operaciones y asigno valores a dato1 y dato2*/

if(dato1.d)
  free(dato1.d);
dato1.d = NULL;
dato1.l = 0;

if(dato2.d)
  free(dato2.d);
dato2.d = NULL;
dato2.l = 0;

***************

El problema es cuando intenta liberar dato2.d, me muestra un mensaje con la leyenda:

"Acccess violation address"

Caray! la mera verdad me trae loco... sino es que ya estoy :)

Bueno espero haberme explicado. Reciban un saludo y gracias por la ayuda.






Más información sobre la lista de distribución Cconclase