У меня есть гигантский 3-мерный массив, который представляет мой мир. Это слишком большое, чтобы инициализировать статический:Как инициализировать этот многомерный массив?
alias Cell[128][128][128] World; // <-- The compiler points to this line
Error: index 128 overflow for static array
Я попытался с помощью World* world
но это все еще ошибок с переполнением выше. Так что у меня сейчас есть этот уродливый беспорядок:
alias Cell[][][] World;
// ...
private World world;
// ...
world.length = WORLD_XDIM;
for (uint x = 0; x < world.length; ++x)
{
world[x].length = WORLD_YDIM;
for (uint y = 0; y < world[x].length; ++y)
{
world[x][y].length = WORLD_ZDIM;
}
}
Это работает, но это заставляет меня плакать немного внутри. Есть ли способ передать результат calloc в трехмерный массив? Я сделал это с нарезкой регулярных массивов, но трехмерная вещь меня пугает.
Это 666-й вопрос с тегом [d]. Хм. – nmichaels
И речь идет о моей любимой теме D, определении/инициализации многомерных массивов. Я все еще не получаю семантики. – sleeplessnerd