Ein Array füllen
-
Hallo ich möchte ein zweidimensionales Array füllen und dann ausgeben. Ich mache das folgendermaßen:
int field[2][2]; for (int i = 0; i <= 2; i++) { //cout << i; for (int j = 0; j <= 2; j++) { //cout << j; field[i][j] = 1; } //cout << endl; } for (int i = 0; i <= 2; i++) { for (int j = 0; j <= 2; j++) { cout << field[i][j]; } cout << endl; }
versuche ich es nun zu kompilieren bekomme ich 3 Warnungen:"warning: array subscript is above array bounds [-Warray-bounds]"
Und beim ausgeben kommen einfach erst 1 und dann immer größer werdende Zahlen heraus. Lasse ich aber das auskommentieren weg und gebe i und j zwischendurch aus funktioniert alles ganz normal und ich bekomme beim Kompilieren auch keine Fehlermeldungen.
Wie kann das sein?
-
Dein Array hat nur 2 Elemente, Du tust so, als hätte es 3.
-
Ach stimmt ja vielen Dank! aber wieso funktioniert alles wenn ich i und j ausgeben lasse?
-
Hewo schrieb:
aber wieso funktioniert alles wenn ich i und j ausgeben lasse?
In beiden Fällen hast du ein ungültiges Programm, dessen Verhalten undefiniert ist. Eine Wieso-Frage ist also sinnlos.
-
----- hatte sich erledigt, sorry ----