Я пытаюсь создать массив строковых массивов с нулевым завершением. Все в массиве известно во время компиляции, кроме одного элемента, который помещается в него во время выполнения.
Вот как я хочу, чтобы массив выглядел: [ ["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.
Как я могу изменить это на тот массив, который мне нужен?
Спасибо!
NUM_COMMANDS
и как вы пытаетесь вставитьargv
. - person Some programmer dude   schedule 21.04.2013commands
является постоянным значением. Вам нужно выделять память динамически. Что-то вроде:char *commands_d[NUM_COMMANDS]; for(int i = 0; i < NUM_COMMANDS; i++) commands_d[i] = commands[i]; commands[2] = argv;
- person Eddy_Em   schedule 21.04.2013