Pointer Problem
-
Hi,
ich bin noch ein c++ noob und hab da mal ne Frage zu Pointer und der Vector Klasse. Also ich hab://Header-Datei struct DAT { int anz; int anz2; }; std::vector<DAT> *m_Daten; //CPP-Datei for(int i=0;i<this->m_Daten->size();i++) { m_Daten[i]->anz; }Ich erhalte folgende Fehlermeldung:
Der linke Teil von '->anz' muss auf Klasse/Struktur/Union zeigenKönnt ihr mir sagen was daran falsch ist? Ich kenn mich mit Pointern noch nicht so recht aus.
Gruß
Alexander
-
Wieso machst du überhaupt einen Pointer auf einen Vektor?
Um dir deine Frage zu beantworten - es sollte so heißen:
(*m_Daten)[i].anzIst aber wahrscheinlich sinnlos und nicht das, was du willst.
-
Hallo
grunsätzlich must du
(*m_Daten)[i].anz;schreiben, da du in dem Vector ja keine Pointer verwendest.
Auderdem ist dir doch klar, das du so wie du es hast, den vector erst noch mit new erstellen must? Und nach gebrauch wieder mit delete löschen must?
bis bald
akari
-
Danke, Problem gelöst.
Das mit dem Pointer auf dem Vector hab ich aus folgendem Grund gemacht:
int WINAPI WinMain(...) { std::vector<DAT> Daten; .... .... CSave s; s.m_Daten=&Daten; s.SavetoFile(); }Ich hab jetzt ne verkürzte Version geschrieben, hoffentlich ist mir kein Tipfehler passiert.
Oder wäre das ganze auch noch einfacher gegangen?