liqiankun 发表于 2007-1-24 13:26:14

空指针指向的内存哪个地方?

int *p;
p = NULL;

VisualUnit 发表于 2007-1-24 14:22:04

指向0

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

[ 本帖最后由 VisualUnit 于 2007-1-24 14:28 编辑 ]

JamesGosling 发表于 2007-1-24 19:49:40

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

lovefei1027 发表于 2007-2-9 21:14:58

空指针不指向任何地方,NULL就是一个空指针值,它是不指向任何一个地方的
严格的来说指针并不是为0的

hell_cll 发表于 2007-2-12 16:18:46

如果我让p=0,它想不为0都不行。

hell_cll 发表于 2007-2-12 16:18:52

如果我让p=0,它想不为0都不行。

muerte 发表于 2007-2-26 15:34:08

空指针,是分配地址的,但是没有任何值

青青 发表于 2007-3-2 15:54:53

只是初始化指针用到,0或NULL.
没有指向那里.防止野指针!
页: [1]
查看完整版本: 空指针指向的内存哪个地方?