2D Array vordefinieren



  • Hallo.

    Ich habe eine gespiegelte Tabelle und möchte diese als 2D Array aufbauen, wie definiert man das korrekt im Quelltext vor?

    Nachträglich reintragen habe ich kein Problem, aber wie definiert man ein solches Array vor?

    Eindimensional mit 5 Elementen array[5]
    int array[] = {1,0,0,1,1};
    Mehrdimensional
    int array[][] = {?????}

    Beispiel der gespiegelten Tabelle
    Also der gleiche Buchstabe ist immer die gleiche Nummer in Spalte und Zeile.

    array[5][5]

    - A B C D E
    A 1 0 0 1 1
    B 0 1 0 0 1
    C 0 0 0 0 0
    D 1 0 0 1 1
    E 1 1 0 1 0
    

    Kann mir da bitte wer weiterhelfen? Wie müsste ich dieses Beispiel hier definieren?



  • Zumindest die inneren Dimensionen mußt du im Quelltext angeben - die kann der Compiler dir nicht berechnen. Und dann ist es möglich, die Initialisierer zu verschachteln:

    int array[5][5] =
    {
      {1,0,0,1,1},
      {0,1,0,0,1},
      {0,0,0,0,0},
      {1,0,0,1,1},
      {1,1,0,1,0}
    }
    


  • int array[5][5] = {
    {1 0 0 1 1},
    {0 1 0 0 1},
    {0 0 0 0 0},
    {1 0 0 1 1},
    {1 1 0 1 0}
    }
    

    so klappt's, man muss scheinbar die Anzahl bereits mit angeben. Find ich komisch aber ok, hauptsache es geht 🙂



  • Ups, da war jemand schneller. Danke für die schnelle Hilfe! 🙂



  • knuff schrieb:

    so klappt's, man muss scheinbar die Anzahl bereits mit angeben. Find ich komisch aber ok, hauptsache es geht 🙂

    Nicht nur scheinbar, das ist (afaik) im Standard tatsächlich so festgelegt.



  • Aber er zählt doch die Elemente sowieso, solang sie nicht unterschiedlich sind sollte er doch wissen wieviel es sind?! 🙄
    Aber festgelegt ist festgelegt und das hat sicherlich auch seinen guten Grund 🕶



  • Ja, aber das Zählen klappt nur in der äußersten Dimension, d.h. die (afair) letzte 5 könntest du weglassen und der Compiler berechnet automatisch, aus wievielen int[5] Elementen dein Array besteht.


Log in to reply