Array von Array unterschiedlicher Länge



  • Hallo zusammen!

    Ich habe folgendes Problem und schon ne Weile ohne Erfolg nach ner Lösung gesucht.

    Ich möchte gerne ein paar Arrays variabler Länge, in einem zweidimensionalen Array zusammenfassen. Die Werte der Arrays liegen zur Compile-Zeit bereits in einer .h-Datei vor. gibt es irgendeine Möglichkeit, das hinzukriegen?

    Folgendes Funktioniert nicht (und mir ist auch einigermaßen klar, wieso das nicht funktioniert):

    static int a1[2] = {1, 2};
    static int a2[3] = {1, 2, 3};
    
    static int *a3[2] = {&a1[0], &a2[0]};
    

    Das Ziel wäre es, im weiteren Programm mit z.B. a3[1][2] auf ein Element dieses Doppelarrays zugreifen zu können, bzw. mit a3[0] auf den Anfang eines der Arrays.

    Über eine Hilfestellung würde ich mich sehr freuen.

    Viele Grüße,
    K.



  • also du könntest dir das so umbauen dass es wie folgt aussieht

    const int LAENGE = 5;
    int a1[LAENGE] = {0, 1, 2, 3, 4};
    int a2[LAENGE] = {6, 7, 8, 9, 10};
    
    int a[LAENGE*LAENGE];
    
    for(int i = 0; i < LAENGE; ++i)
    {
         if ( i < 5 )
             a[i] = a1[i];
         else
             a[i] = a2[i-LAENGE];
    }
    

    wobei ich dir aber rate std::vector zu nutzen... wir sind hier im C++ sektor



  • Danke schonmal für die schnelle Antwort!

    Hmm, das versteh' ich nicht so ganz:

    Skym0sh0 schrieb:

    const int LAENGE = 5;
    int a1[LAENGE] = {0, 1, 2, 3, 4};
    int a2[LAENGE] = {6, 7, 8, 9, 10};
    

    Das sind jetzt aber Arrays von gleicher Länge. Die könnte ich ja auch mit

    a[2][LAENGE] = {{0, 1, 2, 3, 4}, {6, 7, 8, 9, 10}}
    

    initialisieren.
    Mein Problem sind Arrays von unterschiedlicher Länge.

    Skym0sh0 schrieb:

    int a[LAENGE*LAENGE]
    

    ;

    Müsste dann die korrekte Länge von a nicht 2*LAENGE sein?

    Skym0sh0 schrieb:

    for(int i = 0; i < LAENGE; ++i)
    {
         if ( i < 5 )
             a[i] = a1[i];
         else
             a[i] = a2[i-LAENGE];
    }
    

    Hmm, ich glaub, das ist nicht das, was ich suche. Denn in meinem konkreten fall sind es mehr als zwei Arrays, die alle eine unterschiedliche Länge haben.

    Skym0sh0 schrieb:

    wobei ich dir aber rate std::vector zu nutzen... wir sind hier im C++ sektor

    Wie würde das damit gehen?




Anmelden zum Antworten