空悬指针问题

rs369007 2009-11-02 09:16:27
当free掉一个指针 但是还是能用 释没释放看来效果一样
那这里free 与没有free到底实质区别在那里 还是free只是一种心理安慰而已

#include<stdio.h>
main()
{
char ch[4]="ing";
char *p;
p=ch;

puts(p);
free(p);

//p已经释放了,还能引用,这里free还有意义吗?
puts(p);
getch();
return 0;
}
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rs369007 2009-11-02
  • 打赏
  • 举报
回复
可能理解了,像磁盘文件一样,删除了,也只是做个标记,其实还在磁盘上面,当有文件再请求存储在磁盘时上,这个区域是可以被使用的。
butwang 2009-11-02
  • 打赏
  • 举报
回复
free只是对你以前申请的内存做了个删除的标记,你要使用可以,后果自负
jackyjkchen 2009-11-02
  • 打赏
  • 举报
回复
心理安慰……你不要puts,用strcpy试试看,VC绝对报错,TC不报错是因为编译器太矬
aizibion 2009-11-02
  • 打赏
  • 举报
回复
free就是告诉婚姻介绍所,这个女士我不要了,你介绍给别人吧

如果你不要她之后,某天又去要,出不出问题就得看婚姻介绍所有没有把她介绍出去了
lingyin55 2009-11-02
  • 打赏
  • 举报
回复
free(p);
之后最好加上
p=NULL;

不出错是你运气好而已

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧