Как проинициализировать многомерный массив?

vertyal17

Вот никак не могу придумать.
double __diamond_cell[][] = {{1,1},{2,2},{3,3}}
не работает, а больше ничо в голову не приходит.
Хелп плз

tamusyav

Ошибка не в инициализации, а вот здесь:
[][]
Ты как себе представляешь размещение такого массива в памяти? Комп не телепат, чтобы догадаться о том, сколько элементов в строке.

Marinavo_0507

придумай строковое представление и парсер напиши
или смени язык программирования (можешь по дороге пожаловаться в соседний тред)

Maurog

надо циферьку поставить
 
double __diamond_cell[][2] = ...

Jackill



The built-in arrays are a major source of errors ­ especially when they are used to build multidimensional arrays. For novices, they are also a major source of confusion. Wherever possible, use vector, list, valarray, string, etc.

вот так:
 
vector< vector<double> > m;

tamusyav

Кто сказал, что используются плюсы?

Realist

и, btw, не начинай идентификаторы с подчеркиваний

Peace123

ага, реально очень хороший совет.

Ivan8209

Что, с линкером проблемы?
---
"Аллах не ведёт людей неверных."

Realist

17.4.3.1.2 Global names
Certain sets of names and function signatures are always reserved to the implementation:
— Each name that contains a double underscore (__) or begins with an underscore followed by an upper-case letter (2.11) is reserved to the implementation for any use.
— Each name that begins with an underscore is rederved to the implementation for use as a name in the global namespace. *

Далее, имеется совет Герба Саттера (могу точную ссылку поискать) о том, что лучше не заморачиваться и вообще не использовать двойное подчеркивание, а также не начинать с одинарного. Далее, поскольку автор не уточняет язык, а Си с известными оговорками входит в С++, разумно придерживаться тех же ограничений и в Си.
Оставить комментарий
Имя или ник:
Комментарий: