免费注册 查看新帖 |

Chinaunix

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

[C] 【请教高高手】悬垂指针有可能指向NULL吗? [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
11 [报告]
发表于 2008-07-10 17:55 |只看该作者
原帖由 zszjxh 于 2008-7-10 17:47 发表
声明了指针不赋值,那这个指针有什么用?


nod.
而且声明了不用,编译器也会给警告的

论坛徽章:
0
12 [报告]
发表于 2008-07-10 17:56 |只看该作者
有以为利,无以为用。无用之用,是为大用。

这是老子说的。

具体到这个问题,俺就不知道了。

论坛徽章:
0
13 [报告]
发表于 2008-07-10 19:59 |只看该作者
我以为是不可能的

论坛徽章:
0
14 [报告]
发表于 2008-07-10 20:14 |只看该作者
第一次听悬垂指针:  --!

按照zszjxh  解释:只声明没赋值的指针

似乎是个没有意思的问题。是不是空你用都是不正确的。

论坛徽章:
0
15 [报告]
发表于 2008-07-11 09:17 |只看该作者
有可能指向NULL,但概率小
首先你得搞清楚局部变量的分配,比如一个 char *ptr,在32位机器上分配此变量只是esp多+4,
寻址这个一般就是ebp+XXX
分配出来后,值是多少,取决于堆栈上这位置本来的值。

论坛徽章:
0
16 [报告]
发表于 2008-07-11 09:21 |只看该作者
原帖由 ballbb 于 2008-7-10 17:41 发表
测了一下,非常有可能啊。看来申明了指针还是一定要赋值的。保险。

  1 #include
  2
  3 void t (int i )
  4 {
  5     char * ptr;
  6
  7     if (ptr == NULL)
  8         printf("%d  fou ...



兄弟,你这样测试是有问题的,首先你在循环中调用 t函数,堆栈位置是一样的,每次你分配的ptr的地址实际上是一样的,然后ptr=NULL了,那位置的内存是0x00000000了,第二次分配指向那位置,当然也就是NULL了

论坛徽章:
0
17 [报告]
发表于 2008-07-11 09:27 |只看该作者
原帖由 ballbb 于 2008-7-10 17:56 发表
有以为利,无以为用。无用之用,是为大用。

这是老子说的。

具体到这个问题,俺就不知道了。

这说明最后还是要用的啊!

经常的, 我觉得悬垂指针不是故意留下的, 更经常的是无意之中产生而没有发现而已吧!

论坛徽章:
0
18 [报告]
发表于 2008-07-11 09:49 |只看该作者
死了活该!

论坛徽章:
0
19 [报告]
发表于 2008-08-03 17:04 |只看该作者

回复 #3 ballbb 的帖子

有可能,当它的内存值本来就是0的话就是了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP