Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > `new' cannot appear in a constant-expression


Автор: antonmaster 17.7.2005, 00:02
int * a_piMap = new int[300][22][2];


вызывает такой еррор:
cannot convert `int (*)[22][2]' to `int*' in initialization

smile

Автор: Любитель 17.7.2005, 11:39
Динамичеки наверно только одномерные массивы можно создавать.

Автор: Mayk 17.7.2005, 11:53
Цитата
Динамичеки наверно только одномерные массивы можно создавать.

Угу. Многомерные динамические массивы - это на самом деле массив указателей(int** - указатель на указатель/указатели)
Поэтому можно делать так:
Код

int** gameMap = new int*[MapHeight];
for(int i=0;i < MapHeight; ++i)
   gameMap[i] = new int[MapWidth];
... что-то страшное ...
for(int i=0;i < MapHeight; ++i)
   delete[] gameMap[i];
delete[] gameMap;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)