Dünyamı temsil eden devasa bir 3 boyutlu dizilim var. Bu statik olarak başlatmak için çok büyük:Bu çok boyutlu diziyi nasıl başlatmalıyım?
alias Cell[128][128][128] World; // <-- The compiler points to this line
Error: index 128 overflow for static array
Yukarıda taşma ile World* world
ama yine de hatalar dışarı kullanarak çalıştı. Peki şu anda var bu çirkin karmaşa:
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;
}
}
çalışır, ancak bana içeride biraz ağlatıyor. Calloc sonucunu 3 boyutlu bir diziye çevirmenin bir yolu var mı? Normal dizileri dilimleyerek yaptım, ama 3 boyutlu şey beni şaşırtıyor.
Bu, [d] ile etiketlenen 666 soru. Hmm. – nmichaels
Ve en sevdiğim D konusu, çok boyutlu dizilerin tanımı/başlatılması ile ilgili. Hala anlambilim yok. – sleeplessnerd