0

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

如何解决此错误?

4

2 回答 2

2

argc是传递给程序的参数的计数或数量。

您需要从双指针解析实际参数argv。不过,您首先需要将其argv列为输入:

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

例如,查看此页面。

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

于 2013-11-06T16:53:55.887 回答
2

C 默认带有这个数组。您的 main() 应如下所示:

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

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

于 2013-11-06T16:54:20.943 回答