A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© LSwbfil2015 中级黑马   /  2015-8-13 11:37  /  2745 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int *p1; p1 = NULL; int a = 5; *p1 = a; printf("%p",p1);

输出结果不是NULL,这是什么错误?
野指针错误?
空指针错误?

16 个回复

倒序浏览
程序出错,这个应该算是空指针错误,空指针指向的是不存在的区域,给不存在的区域赋值自然就出错了
回复 使用道具 举报
应该事控制证错误。。
回复 使用道具 举报
这个......这个........
回复 使用道具 举报
空指针,程序报错
回复 使用道具 举报
null是宏定义的,代表0
回复 使用道具 举报
上来就定义了一个空指针.....
回复 使用道具 举报
空指针p不指向任何变量,给*p赋值是错误的
回复 使用道具 举报
我也疑惑这个问题
回复 使用道具 举报
是个野指针。
回复 使用道具 举报
你写法就不对。int *p1;p1=NULL;int a=5;p1=&a;printf("%d",p1);
回复 使用道具 举报
楼主的是空指针错误,这个赋值的指针 int *p;int a=1;*p=a;是野指针报错
回复 使用道具 举报
我也很迷糊
回复 使用道具 举报
neverbloom7 发表于 2015-8-15 22:56
楼主的是空指针错误,这个赋值的指针 int *p;int a=1;*p=a;是野指针报错

不对我也是醉了,楼主这个就是野指针报错
回复 使用道具 举报
这个指针刚开始时指向NULL,之后对它进行了*p=a,改变了指向,它指向了变量a在内存中存储的首地址
回复 使用道具 举报
nt *p1; p1 = NULL; int a = 5; *p1 = a; printf("%p",p1);
输出结果肯定不是null。应该是一个地址,这是存放变量5的地址,因为你让指针指向了存放5的地址。
回复 使用道具 举报
aidan 中级黑马 2015-8-19 14:00:09
17#
你这里*p1=a。。。
前面p1为空指针,这里给一个没有地址的地方赋值
有问题吧
如果是p1=&a就不会有问题了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马