#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;
}
输出结果如下:
[root@lnxdesk Tazim]# ./a.out
154804232
154804232
154804232
即使我已经执行了free(p);
,为什么p所在的地址仍然被打印出来呢?free(p)
做了什么呢?
我想清楚地理解free/malloc的概念。任何帮助都将是有价值的。