c語言指標陣列問題,求高手解惑

時間 2022-02-08 01:15:08

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的地...