输出的数据,和指针被释放之前,一模一样,为什么
2 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
因为释放指针,只是将指针所指的内存空间交还给系统,而指针变量的内容(即刚释放的内存地址)并为改变,所以还能输出。但此时的指针一般称之为“野指针”,是很危险的。
所以,一般要求释放指针后,紧接着将其置为空:
free(p);
p=NULL;
慕田峪9158850
TA贡献1794条经验 获得超7个赞
你编译器的问题吧,我这里 printf("p=%s\n",p) ; 没有输出的。
// 不用对 malloc 返回的指针强制转换?
char *p = (char*)malloc(100);
添加回答
举报
0/150
提交
取消