Mam olbrzymią trójwymiarową tablicę, która reprezentuje mój świat. To jest zbyt duża, aby zainicjować statycznie:Jak zainicjować tę tablicę wielowymiarową?
alias Cell[128][128][128] World; // <-- The compiler points to this line
Error: index 128 overflow for static array
Próbowałem za pomocą World* world
ale jeszcze błędy się z przelewem powyżej. Więc mam teraz ten paskudny bałagan:
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;
}
}
To działa, ale sprawia, że trochę płaczę w środku. Czy istnieje sposób, aby rzucić wynik calloc do 3-wymiarowej tablicy? Zrobiłem to, przecinając regularne tablice, ale ta trójwymiarowa sprawa mnie przeraża.
To jest 666. pytanie oznaczone jako [d]. Hmm. – nmichaels
I to jest o moim ulubionym temacie D, definicji/inicjalizacji wielowymiarowych tablic. Nadal nie rozumiem semantyki. – sleeplessnerd