2013-07-30 47 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已经说过,阵列已作为指针/引用传递,所以不需要在函数调用中引用它。