2013-07-30 3 views
0

Я новичок в программирование C и пытаюсь выяснить, почему я получаю сообщение об ошибке пытаюсь передать переменную обугленную в функциюPassing строкового значения функции аргумент возвращает ошибку

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

"переменная символ" -. [. Обязательно ссылка про указатели против массивов] Нах, то 'символ [100]' переменной –

+0

Кроме того, (http://c-faq.com/ aryptr/index.html) –

ответ

2

Ваши функции типа аргумента является char *. Поэтому вам не нужно использовать &cmd. Просто используя cmd будет передавать базовый адрес этого массива.

Так как вы вызываете функцию, как:

getLine(cmd, &line); 

или изменить объявление функции как:

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

Как Midhun MP уже сказал, массив уже передается как указатель/ссылка, поэтому нет необходимости ссылаться на него в вызове функции.

Смежные вопросы