Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/06/2015, 15:18
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: Liberar array reservado con malloc

Cita:
Iniciado por albondi Ver Mensaje
De acuerdo, entonces con free(regEmp) libero la posición en memoria del array de registros de empleados, pero éste sigue existiendo no? Porque para comprobarlo después de liberar la memoria, intente imprimir de nuevo los registros de empleados y seguir apareciendo. Es normal?
Como te he comentado, free únicamente marca esa memoria como disponible. Los datos ahí almacenados seguirán existiendo hasta que esa memoria vuelva a ser reservada, momento a partir del cual esos datos pueden acabar sobreescritos en cualquier momento. En cualquier caso no es para nada seguro acceder a memoria liberada, así que asegúrate de liberar la memoria una vez que sepas que ya no necesitas lo que ahí está almacenado.

Cita:
Iniciado por albondi Ver Mensaje
Era un ejercicio de examen que me pedía liberar los registros con función. Está bien resuelto?
Si haces X=malloc(), entonces has de hacer free(X). Esto implica que free se ha de ejecutar exactamente el mismo número de veces que malloc.

Mientras cumplas con estas premisas el ejercicio estará correctamente resuelto.

Un saludo