51Testing软件测试论坛

标题: 空指针指向的内存哪个地方? [打印本页]

作者: liqiankun    时间: 2007-1-24 13:26
标题: 空指针指向的内存哪个地方?
int *p;
p = NULL;
作者: VisualUnit    时间: 2007-1-24 14:22
标题: 指向0
空指针指向的地址是0x00000000,一般的PE文件,开始的内存基址就是0x00400000,代码段的开头是0x00401000,所以空指针指向的地址在该文件中是不存在的,由于这种内存地址默认指向本PE文件中的地址,所以也不会指到别的运行中的程序中去。

[ 本帖最后由 VisualUnit 于 2007-1-24 14:28 编辑 ]
作者: JamesGosling    时间: 2007-1-24 19:49
p 是一个指针变量,如果p = 0;、p = 0L;、p = '\0';、p = 3 - 3;、p = 0 * 17; 中的任何一种赋值操作之后, p 都成为一个空指针,由系统保证空指针不指向任何实际的对象或者函数。反过来说,任何对象或者函数的地址都不可能是空指针。C标准中没有对空指针指向内存中的什么地方这一个问题作出规定,也就是说用哪个具体的地址值(0x0000 地址还是某一特定地址)表示空指针取决于系统的实现,常见的空指针一般指向 0 地址,即空指针的内部用全 0 来表示
作者: lovefei1027    时间: 2007-2-9 21:14
空指针不指向任何地方,NULL就是一个空指针值,它是不指向任何一个地方的
严格的来说指针并不是为0的
作者: hell_cll    时间: 2007-2-12 16:18
如果我让p=0,它想不为0都不行。
作者: hell_cll    时间: 2007-2-12 16:18
如果我让p=0,它想不为0都不行。
作者: muerte    时间: 2007-2-26 15:34
空指针,是分配地址的,但是没有任何值
作者: 青青    时间: 2007-3-2 15:54
只是初始化指针用到,0或NULL.
没有指向那里.防止野指针!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2