3

我正在尝试创建一个以 null 结尾的字符串数组。数组中的所有内容在编译时都是已知的,除了在运行时放入其中的一个元素。

这就是我希望数组的外观: [ ["command1", "arg", "arg", 0], ["command2", 0], argv, ["command3", "arg", 0] ]

所以这里的 command1、command2 和它们的 args 在编译时是已知的,只有 argv 在运行时被放入其中。

问题是我无法完成这项工作。目前我这样做是为了创建一个带有 NUM_COMMANDS(数字)命令的数组:

char *commands[ NUM_COMMANDS ][] = {
    {"command1", "arg", 0}, 
    {0}, /*This is where I want to place argv*/
    {"command2", "arg", 0}
    };

但它不允许我插入 argv。

我怎样才能把它变成我想要的那种数组?

谢谢!

4

1 回答 1

3

在阅读了 roliu 发布的问题的链接后,我设法自己解决了这个问题。

char **commands[ NUM_COMMANDS ];
char *command1[] = {"command1", 0};
char *command2[] = {"command2", "arg", 0};

argv[0] = "grep";

commands[0] = (char **) command1;
commands[1] = (char **) argv;
commands[2] = (char **) command2;

感谢您对原始问题的评论!

于 2013-04-21T11:44:43.137 回答