Stimmt etwas mit dem Kompiler nicht?



  • #include <stdio.h>
    
    int main(){
            bool matrix[32][6] = {0};
    
            for(int i=0; i<32; i++){
                    matrix[0][i] = 1;
            }
    
            for(int i=0;i<6;i++){
                    for(int x=0;x<32;x++){
                            printf("%s", matrix[i][x] ? "1" : "0");
                    }
                    printf("\n");
            }
    
    }
    

    Ziel ist es die Oberste Reihe des Arrays mit 1en zu befüllen. Warum bekomme ich dann so ein Ergebniss? Stimmt etwas mit dem Kompiler nicht?

    Ergebniss:

    11111111111111111111111111111111
    11111111111111111111111111000000
    11111111111111111111000000000000
    11111111111111000000000000000000
    11111111000000000000000000000000
    11000000000000000000000000000000
    


  • Mit deinem Programm stimmt was nicht. Du hast ein Array, welches 32 arrays von jeweils 6 Elementen fassen kann. allerdings greifst du auf das erste der 32 elemente zu und setz darin 32 werte, obwohl du nur 6 setzen dürftest.

    Unten bei der ausgabe genauso. Schau doch mal auf deine Definition...



  • Deine Array-Indices sind vertauscht - Zeile 4 passt nicht zu Zeile 7 bzw. zu Zeile 17.


Anmelden zum Antworten