我试图创建一个以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;
感谢您对原始问题的评论!