Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: David8 en 24 Mayo 2014, 19:32 PM

Título: Liberar memoria asignada a una estructura
Publicado por: David8 en 24 Mayo 2014, 19:32 PM
Imaginemos que tenemos una estructura tal que:

struct estructura{
// miembros
};

struct estructura *variable;


y ahora

variable = malloc(5 * sizeof(*variable));


Quería saber si liberar la memoria así:

for(i = 0; i < 5; i++){
free( (variable + i) );
(variable + i) = NULL;
}


es correcto.

Un saludo.
Título: Re: Liberar memoria asignada a una estructura
Publicado por: rir3760 en 24 Mayo 2014, 23:50 PM
No lo es. La función malloc reserva un bloque con (al menos) el tamaño indicado y retorna su dirección. Para liberar ese bloque se debe llamar a la función free con la mentada dirección como argumento.

Siguiendo tu ejemplo la forma correcta es:
free(variable);

Un saludo