当前位置:  开发笔记 > 编程语言 > 正文

在C中没有得到NULL指针错误

如何解决《在C中没有得到NULL指针错误》经验,为你挑选了2个好方法。

我故意试图在C中获取NULL指针,但我没有这样做.这是我编码的内容:

int main(void) {
  int x; //UNINITIALIZED so that it will represent "nothing"
  int *null_test = &x;
  printf("This should be null   %p \n", null_test);
}

但它给了我一个地址:0x7fd96c300020这似乎NULL不像我希望的那样.

为什么?我甚至没有初始化x但仍然不是null?



1> Jabberwocky..:

int *null_test = &x;

null_test包含的地址x.x即使x从未初始化,该地址也与内容无关.



2> artm..:

为什么?我甚至没有初始化x但仍然不是null?

您需要区分1)定义和2)初始化.在为内存分配内存时定义变量.当该内存位置填入某个值时,将初始化变量.

x是未初始化但已经定义 - 这意味着被分配 - 这意味着x在内存中有一个特定的位置.所以&x不是NULL,所以null_test:

int *null_test = &x;

如果您想要null_test为NULL,只需明确指定它

int *null_test = NULL;

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有