intentado el siguiente código:entendimiento concepto de libre
#include<stdio.h>
int main()
{
int *p,*q;
p = (int *)malloc(sizeof(int));
*p =10;
q = p;
printf("%u \n",p);
printf("%u \n",q);
free(p);
printf("%u \n",p);
return 0;
}
La salida tiene es el siguiente:
[[email protected] Tazim]# ./a.out
154804232
154804232
154804232
¿Por qué es que la dirección en el interior p está siendo impresa, incluso si he hecho free(p);
? ¿Qué ha hecho free(p)
entonces?
Quiero entender claramente el concepto de libre/malloc. Cualquier ayuda será valiosa.
Eso es cierto, pero imprimir el valor del puntero sigue siendo un comportamiento indefinido - http://stackoverflow.com/q/4076563/57428 – sharptooth
@sharptooth - Gracias. No sabía que – MByD