Matrix in Struktur



  • Servus Leute,
    ich will eine Matrix in eine Struktur packen, von der ich eine Variable als array erzeuge.
    Hier der Beispielcode:

    typedef struct
    {
      unsigned int (*matrix)[4][4];
    }Matrix;
    
    unsigned int matrix_1[][4]={{1,2,3,4},
                                {1,2,3,4},
                                {1,2,3,4},
                                {1,2,3,4},};
    
    unsigned int matrix_2[][4]={{1,2,3,4},
                                {1,2,3,4},
                                {1,2,3,4},
                                {1,2,3,4},};
    
    unsigned int matrix_3[][4]={{1,2,3,4},
                                {1,2,3,4},
                                {1,2,3,4},
                                {1,2,3,4},};
    
    Matrix array[] = {&matrix_1,&matrix_2,&matrix_3};
    

    Ich habe ein array angelegt, in dem die Adressen jeder Matrix drinsteht. Soweit kommt keine Fehlermeldung. Wenn ich jetzt versuche auf eine davon zuzugreifen, bekomme ich jedoch immer eine Fehlermeldung.
    So habe ich es probiert:

    array[1].matrix[0][0] = 10;
    

    Fehlermeldung: incompatible types when assigning to type 'unsigned int[4]' from type 'int'
    oder

    array[1].(*matrix)[0][0] = 10;
    

    Fehlermeldung: [Error] expected identifier before '(' token

    Ich weiß nicht, was ich hier falsch gemacht habe. 😕

    Danke im Voraus



  • Was ist das hier?

    AOSOVS schrieb:

    unsigned int matrix_1={{1,2,3,4},
    {1,2,3,4},
    {1,2,3,4},
    {1,2,3,4},}

    Eine Variable namens matrix_1 vom Typ unsigned int, der irgendwas, nur kein vernünftiger int-Wert zugewiesen wird ...



  • habs korrigiert, Übertragungsfehler, sry



  • *(array[1].matrix)[0][0] = 10;
    


  • Brauchst du die struktur oder weißt du's nicht besser?

    Unsigned int (*matrix)[4];

    Hätte gepasst.

    Mfg Martin



  • danke 🙂

    Für den weiteren Programmverlauf ist es ganz nützlich.


Anmelden zum Antworten