C语言 创建一个以空结尾的字符串数组,其中大多数字符串数组是静态的



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

这就是我想要的数组的样子:[ ["command1", "arg", "arg", 0], ["command2", 0], argv, ["command3", "arg", 0] ]

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

问题是我不能做这件事。目前,我这样做是为了创建一个数组与NUM_COMMANDS(数字)命令:
char *commands[ NUM_COMMANDS ][] = {
    {"command1", "arg", 0}, 
    {0}, /*This is where I want to place argv*/
    {"command2", "arg", 0}
    };

但是它不允许我插入argv

我怎么把它变成我想要的数组类型?

谢谢!

在阅读了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;

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

相关内容

  • 没有找到相关文章

最新更新