C многомерный массив строк - PullRequest
1 голос
/ 30 апреля 2011

Я объявляю массив строк очень просто, жестко, но он продолжает выдавать ошибку array type has incomplete element type.

Я думаю, это как-то связано с длиной каждого массива, ноне знаю, как это исправить без установки фиксированной длины для строк.

char allocate[][2][] = {  // Error with or without the 2
    {"value1","value2"},
    {"value3","value4"}
};

1 Ответ

10 голосов
/ 30 апреля 2011

Этот синтаксис недопустим.Если вы хотите настоящий многомерный массив, все размеры должны быть указаны, кроме первого.(Компилятор должен знать, насколько велики «внутренние» массивы, чтобы выполнить вычисление адреса для внешних измерений.)

Попробуйте вместо этого:

const char *allocate[][2] = {
    {"value1","value2"},
    {"value3","value4"}
};

Он объявляет двумерный массивconst char *.

Обратите внимание, что если вы хотите строки, в которые вы можете записать , то описанный выше подход не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...