黑马程序员技术交流社区

标题: 有关int *p=NULL;的问题 [打印本页]

作者: LSwbfil2015    时间: 2015-8-13 11:37
标题: 有关int *p=NULL;的问题
int *p1; p1 = NULL; int a = 5; *p1 = a; printf("%p",p1);

输出结果不是NULL,这是什么错误?
野指针错误?
空指针错误?
作者: wowthe1st    时间: 2015-8-13 12:58
程序出错,这个应该算是空指针错误,空指针指向的是不存在的区域,给不存在的区域赋值自然就出错了
作者: 丁铭检    时间: 2015-8-13 13:15
应该事控制证错误。。
作者: xiaoguang    时间: 2015-8-13 21:12
这个......这个........
作者: Sinyuyu    时间: 2015-8-13 21:13
空指针,程序报错
作者: 墨琰    时间: 2015-8-13 22:49
null是宏定义的,代表0
作者: yushimin763    时间: 2015-8-14 11:12
上来就定义了一个空指针.....
作者: 65006636    时间: 2015-8-14 14:29
空指针p不指向任何变量,给*p赋值是错误的
作者: nulifendou    时间: 2015-8-14 21:28
我也疑惑这个问题
作者: 飓风少年    时间: 2015-8-14 21:40
是个野指针。
作者: fellerlong    时间: 2015-8-15 19:00
你写法就不对。int *p1;p1=NULL;int a=5;p1=&a;printf("%d",p1);
作者: neverbloom7    时间: 2015-8-15 22:56
楼主的是空指针错误,这个赋值的指针 int *p;int a=1;*p=a;是野指针报错
作者: 胥鹏飞    时间: 2015-8-15 23:17
我也很迷糊
作者: neverbloom7    时间: 2015-8-16 08:24
neverbloom7 发表于 2015-8-15 22:56
楼主的是空指针错误,这个赋值的指针 int *p;int a=1;*p=a;是野指针报错

不对我也是醉了,楼主这个就是野指针报错
作者: 墨琰    时间: 2015-8-16 22:51
这个指针刚开始时指向NULL,之后对它进行了*p=a,改变了指向,它指向了变量a在内存中存储的首地址
作者: Edware    时间: 2015-8-16 23:30
nt *p1; p1 = NULL; int a = 5; *p1 = a; printf("%p",p1);
输出结果肯定不是null。应该是一个地址,这是存放变量5的地址,因为你让指针指向了存放5的地址。
作者: aidan    时间: 2015-8-19 14:00
你这里*p1=a。。。
前面p1为空指针,这里给一个没有地址的地方赋值
有问题吧
如果是p1=&a就不会有问题了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2