将cmd行参数复制到数组中

时间:2013-11-06 16:49:51

标签: c arrays cmd arguments line

我正在尝试将命令行参数复制到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')

如何解决此错误?

2 个答案:

答案 0 :(得分:2)

argc count 或提交给您程序的参数数量。

您需要解析双指针argv中的实际参数。 首先,您需要列出argv作为输入:

 int main (int argc, char *argv[])

例如,请查看此页面。

http://www.thegeekstuff.com/2013/01/c-argc-argv/

答案 1 :(得分:2)

默认情况下,C附带此数组。你的main()应该是这样的:

int main(int argc, char *argv[])
{
}

argv正是你想要的:一个指向字符串的指针数组。 argc只是参数的数量。