Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/03/2008, 12:16
Avatar de _Lucifer_
_Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 7 meses
Puntos: 28
Re: Error con free

No sé exactamente cual es el error, pero sé que ese error aparece cuando intentas liberar memoria no reservada, es decir:

Código:
#include <stdlib.h>
int main()
{
   int *ptr;
   free(ptr);
   return 0;
}
Esto debería generar el mismo error (o muy parecido), así que probablemente el puntero pathhome queda "apuntando" a una posición que no puedes liberar.

Sea cual sea la solución que decidas usar NO hagas esto:
Cita:
...
De manera particular, casi no me gusta usar free ya que me encontraba problemas como los que mencionas, en vez de hacer eso, lo que hago es a traves de un memset limpiar el espacio de memoria que emplee para no dejar basura y despues referencio el apuntador a NULL. No se si esto te pudiera servir.
...
@Mephisto: no importa si llenas la memoria de 0's, 1's, 12354's...si está reservada previamente con malloc quedará reservada y no se podrá usar por tu programa ni por ningún otro porque además estas perdiendo la ubicación cuando asignas NULL.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba: