zweidimensionales struct - inneres dyn. erstellen?



  • Hallo zusammen. Ich habe eine Frage zu folgendem Code:

    #include <iostream>
    
    using namespace std;
    
    struct Cust
    {
           char Ort[];
           char Name[];
           int TotKgs;
           float TotChf;
           struct List
           {
                  char Number[];
                  int Kgs;
                  float Chf;
           };
    };
    
    int main()
    {
        cout << "number of customers: ";
              int i;
              cin >> i;
              Cust * pcust = new Cust[i];
        do
        {
              cout << "number of lists: ";
              int j;
              cin >> j;
              Cust.List * plist = new Cust.List[j];      //compiler-error
          }
          while (cin.get() != 'q');
    
    return 0;
    }
    

    frage: wie kann ich ein array aus "List"-structs dynamisch erstellen?

    der error sieht so aus:

    30 D:\Daten\dr\Dävu\CPP-Programme\hermes\newstruct.cpp `plist' undeclared (first use this function)

    aber plist is ja keene funktion sondern ein pointer-array 😮



  • Cust.List => Cust::List
    

    ?


  • Mod

    Dein Programm enthält bereits in den Zeilen 7,8 und 13 Fehler. Für nichtstatische Arraymember müssen alle Dimensionen angegeben werden.



  • ok danke don06, das haut hin.
    wie kannich jetzt aber sagen wir x "List"-structs erstellen,
    die zum ersten "Cust"-struct gehören?

    weil

    Cust::List * plist = new Cust[a]::List[x];
    

    geht ja nicht....

    und wenn ich einfach

    Cust::List * plist = new Cust::List[x];
    

    schreibe, gehören die neu erstellten list-structs doch nicht
    zu einem bestimmten cust-struct oder?



  • Dave_R schrieb:

    schreibe, gehören die neu erstellten list-structs doch nicht
    zu einem bestimmten cust-struct oder?

    nein.

    wie kannich jetzt aber sagen wir x "List"-structs erstellen,
    die zum ersten "Cust"-struct gehören?

    die jeweilige "Cust"-instanz muss zeiger auf die zu ihr gehörigen list-objekte halten. (oder sie sonstwie speichern, z.b. mit std::vector )



  • gut danke, hab mir das auch schon irgendwie so überlegt.
    werds mal versuchen


Anmelden zum Antworten