c语言 出现空指针赋值怎么回事???请高手帮忙看下。
答案:3 悬赏:0
解决时间 2021-02-11 03:07
- 提问者网友:江山如画
- 2021-02-10 09:40
c语言 出现空指针赋值怎么回事???请高手帮忙看下。
最佳答案
- 二级知识专家网友:承载所有颓废
- 2021-02-10 10:11
是编译器报的空指针赋值吧?主要原因:作者没有搞清楚C中的全局变量和局部变量的问题。
1。zts[35];point1[35];point2[35];x1[35]这四个数组在main()中有,在四个子函数中有,各是各的,互不干涉,所以main()中的这四个数组始终没有被赋值过,空指针指的就是这个吧。
2。应该把这四个数组的首地址作为四个read()的参数传过去,就可以实现:“在子函数中赋值,在main函数中使用” 的设计目的了。看程序,感觉作者就是这个目的吧。
3。 魔尊8 说的有一定道理,这四个read确实没有起到应有的作用。加上数组首地址做参数就可以了。或者把这四个数组做成全局变量也行啊。
4。作者有时间的话还是应该好好看看C语言的书啊。
1。zts[35];point1[35];point2[35];x1[35]这四个数组在main()中有,在四个子函数中有,各是各的,互不干涉,所以main()中的这四个数组始终没有被赋值过,空指针指的就是这个吧。
2。应该把这四个数组的首地址作为四个read()的参数传过去,就可以实现:“在子函数中赋值,在main函数中使用” 的设计目的了。看程序,感觉作者就是这个目的吧。
3。 魔尊8 说的有一定道理,这四个read确实没有起到应有的作用。加上数组首地址做参数就可以了。或者把这四个数组做成全局变量也行啊。
4。作者有时间的话还是应该好好看看C语言的书啊。
全部回答
- 1楼网友:承载所有颓废
- 2021-02-10 11:40
理解多级指针的概念就可以了,这很简单,不值得讨论。不要把c语言本身设计的初衷本末倒置了。 下面是一个二级指针的例子: int a[7] = {0}; int* pa = a;//指向a[0] int** p_pa = &pa;//指向pa *p_pa += 2;//*p_pa等于pa等于&a[0], 现在pa指向a[2], **p_pa = 10;//将p_pa指向的指针pa--它指向的变量a[2]=10 printf("a[%u] = %d", (pa - a), *(a+2));//现在a[2]等于10
- 2楼网友:一池湖水
- 2021-02-10 11:31
所谓的 空指针赋值
是不是
fp=fopen("zhuangtai.txt","r");
fopen返回的是指针,把文件的地址传给了fp
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯