51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4751|回复: 7
打印 上一主题 下一主题

[求助] 空指针指向的内存哪个地方?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-1-24 13:26:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int *p;
p = NULL;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-1-24 14:22:04 | 只看该作者

指向0

空指针指向的地址是0x00000000,一般的PE文件,开始的内存基址就是0x00400000,代码段的开头是0x00401000,所以空指针指向的地址在该文件中是不存在的,由于这种内存地址默认指向本PE文件中的地址,所以也不会指到别的运行中的程序中去。

[ 本帖最后由 VisualUnit 于 2007-1-24 14:28 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-1-24 19:49:40 | 只看该作者
p 是一个指针变量,如果p = 0;、p = 0L;、p = '\0';、p = 3 - 3;、p = 0 * 17; 中的任何一种赋值操作之后, p 都成为一个空指针,由系统保证空指针不指向任何实际的对象或者函数。反过来说,任何对象或者函数的地址都不可能是空指针。C标准中没有对空指针指向内存中的什么地方这一个问题作出规定,也就是说用哪个具体的地址值(0x0000 地址还是某一特定地址)表示空指针取决于系统的实现,常见的空指针一般指向 0 地址,即空指针的内部用全 0 来表示
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2016-9-3 13:53
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-2-9 21:14:58 | 只看该作者
    空指针不指向任何地方,NULL就是一个空指针值,它是不指向任何一个地方的
    严格的来说指针并不是为0的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-2-12 16:18:46 | 只看该作者
    如果我让p=0,它想不为0都不行。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-2-12 16:18:52 | 只看该作者
    如果我让p=0,它想不为0都不行。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-2-26 15:34:08 | 只看该作者
    空指针,是分配地址的,但是没有任何值
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-3-2 15:54:53 | 只看该作者
    只是初始化指针用到,0或NULL.
    没有指向那里.防止野指针!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 09:07 , Processed in 0.078885 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表