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.
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