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?
-
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