免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: reer
打印 上一主题 下一主题

free后,指针不为null? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2010-11-14 20:45 |只看该作者
free()只是把指针指向的内存区域清空,至于指针又没有什么关系

论坛徽章:
0
22 [报告]
发表于 2010-11-14 22:39 |只看该作者
学习了,

论坛徽章:
0
23 [报告]
发表于 2010-11-15 09:53 |只看该作者
.....

你们有人能够说明 free(p) ;

p != NULL 的原因吗?

free(p) 到底有没有能力把p = null

论坛徽章:
1
黑曼巴
日期:2020-02-27 22:54:26
24 [报告]
发表于 2010-11-15 10:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
25 [报告]
发表于 2010-11-15 11:22 |只看该作者
从函数的角度 解释一下
free(p)

p != NULL

论坛徽章:
0
26 [报告]
发表于 2010-11-15 11:30 |只看该作者
从函数的角度 解释一下
free(p)

p != NULL
newmax123 发表于 2010-11-15 11:22



    man 3 free
   
    free释放p指向的内存空间,让它可以被重新使用,这就是它的功能。又没说会把p置NULL,有什么好解释的。难道释放p指向的内存就一定得把p置NULL?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
27 [报告]
发表于 2010-11-15 12:45 |只看该作者
想想C语言的法则,你就会明白无论free怎么实现也无法把它变成NULL,旁门左道不算

论坛徽章:
0
28 [报告]
发表于 2010-11-15 12:48 |只看该作者
个人觉得 free(p) 后执行 p = NULL 完全是多余。

1、在你的程序执行的整个流程中,你该相当清楚指针何时 ...
langue 发表于 2009-10-12 11:14



    要是写10行代码不置空也没关系,要是几百万的代码申请内存都不置空,出问题时你找找问题在哪?

论坛徽章:
0
29 [报告]
发表于 2010-11-15 13:05 |只看该作者
想想C语言的法则,你就会明白无论free怎么实现也无法把它变成NULL,旁门左道不算
cjaizss 发表于 2010-11-15 12:45



    恩,在不改变函数原型的前提下无法做到

论坛徽章:
0
30 [报告]
发表于 2010-11-15 13:07 |只看该作者
要是写10行代码不置空也没关系,要是几百万的代码申请内存都不置空,出问题时你找找问题在哪?
lnitcscq 发表于 2010-11-15 12:48



  不谈需不需要置NULL,  我觉得如果一个指针跨越几百万行代码,那一定是有严重的设计问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP