Index von 3D Array
-
Hallo,
ich habe ein Array der Dimension 100*100*50. Nun möchte ich durch alle Elemente iterieren und habe es so versucht:
int data[100*100*50; for (int x = 0; x < 100; ++x) for (int y = 0; y < 100; ++y) for (int z = 0; z < 50; ++z) data[x + y * 100 + z * 100 * 50] = 0; // x + y * width + z * width * depth
So findet man es auch in allen einschlägigen Quellen.
Wenn ich jetzt aber nachrechne, welcher der maximal erreichbare Index ist dann komme ich auf99 + 99 * 100 + 49 * 100 * 49 = 254999 != 499999
Das Array hat aber 500000 Elemente. Bin ich jetzt vollkommen auf den Kopf gefallen, was ist hier falsch?
-
Kopffaller schrieb:
Das Array hat aber 500000 Elemente. Bin ich jetzt vollkommen auf den Kopf gefallen, was ist hier falsch?
Nichts - 0...499999 sind 500000 Elemente.
-
Wie ich erwähnte ist der höchste Index den ich erreiche 254999.
-
99 + 99 * 100 + 49 * 100 * 100 = 499999
-
data[x + y * 100 + z * 100 * 50] = 0; // x + y * width + z * width * depth
Ist auch falsch.
data[x + y * 100 + z * 100 * 100] = 0; // x + y * width + z * width * height