我正在尝试将命令行参数复制到C中的数组中。
例如,如果我输入了./rpd 5 6 3
,那么我就会有一个{5, 6, 3}
数组。
我的代码是:
int main(int argc) {
int numberInQueue;
char *queueOfClients;
int i;
queueOfClients = malloc(sizeof(char*) * argc);
for(i = 0; i <= argc; i++) {
queueOfClients[i] = malloc(strlen(*(argc + i)) * sizeof(char));
}
}
我似乎得到的错误是:
error: invalid type argument of unary '*' (have 'int')
如何解决此错误?
答案 0 :(得分:2)
argc
是 count 或提交给您程序的参数数量。
您需要解析双指针argv
中的实际参数。
首先,您需要列出argv
作为输入:
int main (int argc, char *argv[])
例如,请查看此页面。
答案 1 :(得分:2)
默认情况下,C附带此数组。你的main()应该是这样的:
int main(int argc, char *argv[])
{
}
argv
正是你想要的:一个指向字符串的指针数组。 argc
只是参数的数量。