C - Массив в массиве - PullRequest
       3

C - Массив в массиве

3 голосов
/ 27 февраля 2010

Я хочу иметь статический массив с массивами в нем. Я знаю, что вы можете сделать нормальный массив, как это:

int test[] = {1,2,3,4};

Но я хочу сделать что-то вроде этого (Xcode дает мне кучу предупреждений и прочее):

int test[] = {{1,2}, {3,4}};

В питоне это будет:

arr = [[1,2], [3,4]];

Как правильно это сделать?

Ответы [ 3 ]

6 голосов
/ 27 февраля 2010

Чтобы иметь многомерный массив, вам понадобятся два уровня массивов:

int test[][] = {{1,2}, {3,4}};

Однако не будет работать , так как вам нужно объявить размер самых внутренних массивов, кроме последнего:

int test[2][] = {{1,2}, {3,4}};

Или, если вам нужна еще более строгая безопасность:

int test[2][2] = {{1,2}, {3,4}};
2 голосов
/ 27 февраля 2010

Вы можете использовать typedef, как это

typedef int data[2];
data arr[] = {{1,2},{3,4}};

Этот подход может быть более понятным, если вы используете «хорошее» имя для определения типа

0 голосов
/ 27 февраля 2010

Вам нужен массив массивов или 2-х мерные массивы:

int test[][] = {{1,2}, {3,4}};

РЕДАКТИРОВАТЬ : У меня нет связи с C. Это почти правильно, но не совсем так, как показала LiraNuna.

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