2013-07-30 71 views
0

我是新的C語言編程,並試圖爲什麼我得到一個錯誤試圖將char變量傳遞到功能傳遞函數char參數返回錯誤

char cmd[100]; 
getLine(&cmd, &line); 

函數聲明弄清楚:

int getLine(char *cmdl, char *str) 

錯誤:

cannot convert char (*)[100] to char* for argument 1 to int getLine(char*, char*) 
+5

getLine(cmd,&line); – Alexis

+0

「char變量」 - nah,char [100]變量 – 2013-07-30 06:16:47

+0

此外,[關於指針與數組的義務鏈接。](http://c-faq.com/ aryptr/index.html的) – 2013-07-30 06:18:44

回答

2

你的函數參數類型是char *。所以你不需要使用&cmd。只要使用cmd就會傳遞該數組的基地址。

因此,無論你調用的功能等:

getLine(cmd, &line); 

或更改的功能等聲明:

int getLine(char **cmdl, char *str) 
0

由於Midhun MP已經說過,陣列已作爲指針/引用傳遞,所以不需要在函數調用中引用它。