я получил следующую задачу:Как определить общую длину символа элементов массива указателей на символы?
У меня есть массив символьных указателей
char *opts[] = { "-a", "--append", "-b" };
и имя команды, хранящееся в
char cmd[] = "ls";
Теперь нужно вычислить все возможные комбинации, которые я сделанный с использованием Научной библиотеки GNU и выполнение команды с помощью комбинаций вычислений.
Проблема у меня есть, как вычислить объем памяти, который мне нужен для получения char *, который передается системе().
Вот моя первая попытка:
int length = strlen(cmd) * sizeof(char);
for (int i = 0; i < 3; ++i) {
length += strlen(opts[i]) * sizeof(char);
}
Ну, это сработало, но я чувствую, что это не самое лучшее решение прямо /. Не могу ли я применить двумерный массив к плоскому одномерному массиву и получить его размер (если я не ошибаюсь, это не многомерные массивы на C, C имитируют ими).
, так как все это, в конце концов, отображенных на одномерные пространство памяти, ни один язык не имеет многомерных массивов ... – fortran