Miért adja az alábbi C# kódrészlet a hibaüzenetet?
Azért mert ez így helyes:
int[,,] /*dupla vessző*/ = new int[432, 44341]
Hiszen ez egy több dimenziós tömb.
Valószínüleg az volt a probléma hogy az int típusba ennyi infó nem fér (mert a változónak lefoglalt hely nem elég), én ilyenkor olyasmit alkalmaznék hogy:
Int32[,] vagy Int64[,] mint változó típus.
A két vessző pedig értelmetlen, mivel tényleg 3 dimenziós tömb lesz akkor már " = new int[10,10,10]" szerű megadást kéne alkalmazni, az "int[,,] = new int[10,10]" biztos hogy hibás.
Szóval:
Int16[,] Int32[,] vagy Int64[,] amit javasolni tudok. Szerintem ez volt a baj. ( a sima Int típus csak ~~16ezerig tud tárolni, a 20ezer és 39ezer már sok)
Előző válaszoló:
Elég érdekes dolgokat írsz. .NET-ben az int 32 bites, azaz 2 milliárdig vehet fel értéket, nem 16ezerig. Másrész 3 dimenziós tömbról szó sem volt. Egy válaszoló írta, hogy az a helyes, de az is hülyeséget írt. Szerintem csak egyszerűen a tömb túl nagy. Ha egy cella méretével lenne gond, akkor nem outofmemory exception jönne, hanem valami overflow szerűség.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!