Zeiger auf Vektor aus Strukturen
-
Hallihallo,
ich habe einen Vektor:
vector <driverparam> drvParams(0);Dann definiere ich ein Zeiger auf diesen Vektor:
vector <driverparam> *p_drvParams = &drvParams;Nun würde ich gerne auf den Namen des ersten Elements des Vektors zugreifen. Folgendes funktioniert nicht:
cout << p_drvParams[0]->name << endl;Wie greife ich nun auf die Variablen der einzelnen Vektorelemente zu?
mfg chuqa
-
Du mußt den erst derefenzieren:
cout << (*p_drvParams)[0]->name << endl;Warum benutzt du nicht Referenzen??? Dann ersparst du dir das Derefenzieren... Pointer sind in C++ selten nötig.
-
Artchi schrieb:
cout << (*p_drvParams)[0]->name << endl;Das funktioniert bei mir nicht:
base operand of
->' has non-pointer typedriverparam'Wenn ich allerdings einen Zeiger auf das erste Element mache, kann ich darauf zugreifen:
driverparam *p_drvParams = &drvParams[0]; cout << "Name1: " << p_drvParams->name << endl;Auf das nächste Element kann ich dann wie folgt zugreifen:
p_drvParams++; cout << "Name2: " << p_drvParams->name << endl;Aber wenn du meinst, dass Referenzen dort komfortabler sind, dann werde ich mich da mal reinlesen ;), danke erstmal
mfg chuqa
-
Das funktioniert bei mir nicht:
ARGH! Sorry, das kommt daher wenn man Copy&Paste macht:
cout << (*p_drvParams)[0].name << endl;
-
Ahjo, danke
Aber ich glaube ich werde dein Tipp beherzigen und auf Referenzen umsteigen, habe gerade damit ein bißchen getestet und scheint recht einfach zu sein, damit zu hantieren.
mfg chuqa