1樓:蒼龍禍皇
錯誤很明顯啊,int length(char *p);需要一個char * 引數,你的str 卻是char * ,是一個指標陣列,明顯型別不匹配
看你的程式,應該是想輸入一個字串並判斷其長度吧
你把char *str[20]; 改成 char *str 試試
2樓:
#include
#include
int length(char *p);
void main()
int length(char *p)
return k;}
3樓:
char *str[20]; //這個表示有20個元素,每個元素都是字串指標。
//去除*號,改為:
char str[20]; //這個表示有20個元素,每個元素都是字元型別。在c中,str就是字串。
若沒有黑框出現,請按ctrl+f5來執行程式。
4樓:永星天恆
#include
int length(char *p);
void main()
int length(char *p)
return k;
} 其他地方不用改,已測試
5樓:特殊模糊
clude
int length(char *p);
void main()
int length(char *p)
return k;}
6樓:匿名使用者
char *str[20]是字元指標陣列,不是字串,要定義字串,要麼寫成:char str[20];
要麼寫成 char * str = (char *)malloc(20);
7樓:匿名使用者
char *str[20]; 改成char str[20];
如果是char *str的話一定要初始化,否則是不正確的。
8樓:only釗
同學~我覺得是你的函式庫有問題~length引數不對~在我電腦上可以用~
9樓:
char *str;
10樓:匿名使用者
你把 str 換個 別的試試看 我記得 str 好象也是關鍵字
c語言問題,陣列與指標,C語言陣列和指標的問題
char a computer a指向一個常量字串,常量字串是不能修改的,而你的for迴圈內要修改a指向的這個常量字串,自然要出錯 char a computer 這個a就是個普通陣列了,它的內容是可以改動的,就不會出錯了 因為 a是個指標啊 所以應該賦值賦地址!所以 應該 char a compu...
C語言陣列(指標)越界訪問,C語言指標越界問題,大神指教!!!
與編譯器無關,只與記憶體管理機制有關,是作業系統級別的問題,堆疊的讀取方式只是資料結構上的不同,在機器層面,依然是單純的記憶體讀寫操作 陣列越界訪問的危險性不好評估,但確實是最嚴重的危險之一 結果基本上會100 崩潰,但是崩潰的原因很可能不一樣,就算是同一段越界 跑幾遍,原因也可能是不一樣的 指標越...
C語言指標和陣列的問題,急
斌and麗 你的程式本來就寫的有錯誤吧!你真的可以執行嗎?用的什麼工具啊?int main void int p1,p2,p3 p2 a 這種賦值是錯誤的吧 p1 a p3 a 4 getch 這裡應該改為getchar return 0 a a a 0 都是一個值,指向首地址。p1是取指標p1的地...