我有一個巨大的三維數組,代表我的世界。它太大了靜態初始化:我應該如何初始化這個多維數組?
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的結果轉換爲三維數組?我已經完成了對常規數組的切片,但3D是讓我感到困惑的。
這是第[66]個標記爲[d]的問題。嗯。 – nmichaels
這是關於我最喜歡的D主題,多維數組的定義/初始化。我仍然沒有得到語義。 – sleeplessnerd