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 ----


Log in to reply