系统粉 > 电脑问答 > 其他问答

已解决我没有定义指针,但程序却认为我在给空指针赋值?!

提问者:马路是你家  |  浏览次  |  提问时间:2017-01-18  |  回答数量:4

我没有定义指针,但程序却认为我在给空指针赋值?! #include <stdio.h> #include <string.h> void main() { char str0[20],str1[20],str2[20],string; scanf(\"%s%s%s\",str0,str1,str2); { if (strcmp(str0,str1) > 0) strcpy(string,str0); else strcpy(string,str1); } if (strcmp(str2,string) > 0) strcpy(string,str2); printf(\"The largest string is:%s\\n\",string); }   该程序可以正确输出结果,但是在结果后面会出现一个提示,例如: 我输入: CHINA HOLLAND AMERICA 显示结果: HOLLAND Null pointer assignment   去百度查过了,这个提示的意思是:空指针赋值(定义了指针,但没有分配内存空间,指针是无效的)。   我还没有学到指针那一章,实在是看不懂,这程序

已有4条答案
那年花开忘了摘

那年花开忘了摘

回答数:29  |  被采纳数:81

strcpy(string,str0);有错
2017-01-18 11:55:19
赞 2
超级马leo

超级马leo

回答数:186  |  被采纳数:84

#include <stdio.h>
#include <string.h>
void main()
{
char str0[20],str1[20],str2[20],string[20];  /*缺少定义数组长度*/
scanf("%s%s%s",str0,str1,str2);
{
if (strcmp(str0,str1) > 0)
strcpy(string,str0);
else
strcpy(string,str1);
}
if (strcmp(str2,string) > 0)
strcpy(string,str2);
printf("The largest string is:%s\n",string);
}
  现在已经修改好了!!

  但还是有疑问:
我这个程序能算是3个“一维数组”的组合吗?
2017-01-18 15:13:23
赞 18
花吃了這男孩灬

花吃了這男孩灬

回答数:136  |  被采纳数:150

是4个      
2017-01-18 17:09:44
赞 13
灭孔氏族

灭孔氏族

回答数:200  |  被采纳数:148

问题解决!
  感谢版主forestfairy!!
2017-01-18 18:07:15
赞 20
相关问答
最新其他问答
解决方法