係統粉 > 電腦問答 > 其他問答

已解決我沒有定義指針,但程序卻認為我在給空指針賦值?!

提問者:馬路是你家  |  瀏覽次  |  提問時間: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
相關問答
最新其他問答
解決方法