У меня есть массив C-String, объявленный как:
char *argv[MAXARGS];
MAXARGS в основном просто сообщает нам, сколько строк c находится в массиве для целей индексации. Я хочу передать его этой функции ниже...
int builtin_cmd(char **argv)
но, похоже, ничего не происходит, я вызвал функцию следующим образом.
char *argv[MAXARGS];
builtin_cmd(argv);
но как только я попаду в функцию builtin_cmd
и попытаюсь распечатать, используя
printf("%s\n", argv[0]);
он ничего не печатает.... но когда я делаю это перед вызовом функции...
char *argv[MAXARGS];
printf("%s\n", argv[0]);
//builtin_cmd(argv);
он отлично напечатает первую строку C в массиве строк c. Я думаю, что я неправильно передаю структуру, и я хотел бы знать, как правильно передать ее функции.
РЕДАКТИРОВАТЬ:
int builtin_cmd(char **argv);
int main()
{
char *argv[128];
//put 'quit' into argv[0]..
printf("%s\n", argv[0]); //prints 'quit'
builtin_cmd(argv);
}
int builtin_cmd(char **argv)
{
printf("%s\n", argv[0]); //prints nothing
}
Проблема, опять же, в том, что я не могу получить argv в функцию. Он также компилируется без ошибок или предупреждений.
builtin_cmd(int argc, char* argv[])
. Иначе как встроенная команда узнает, сколько аргументов вы передаете? - person Floris   schedule 09.02.2014