我有一个巨大的 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 的结果转换为 3 维数组?我已经通过切片常规数组来完成它,但是 3-D 的东西让我感到困惑。