Tengo una matriz tridimensional gigante que representa mi mundo. Es demasiado grande para inicializar estáticamente:¿Cómo debo inicializar esta matriz multidimensional?
alias Cell[128][128][128] World; // <-- The compiler points to this line
Error: index 128 overflow for static array
He intentado utilizar World* world
pero todavía errores con el desbordamiento anteriormente. Así que lo que tengo en este momento es este horrible desastre:
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;
}
}
que funciona, pero me hace llorar un poco más en el interior. ¿Hay alguna forma de convertir el resultado de calloc en una matriz tridimensional? Lo hice cortando arreglos regulares, pero la cosa 3-D me está confundiendo.
Esta es la pregunta 666º etiquetada con [d]. Hmm. – nmichaels
Y es sobre mi tema D favorito, definición/inicialización de matrices multidimensionales. Todavía no entiendo la semántica. – sleeplessnerd