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 zeigen

    Kö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].anz
    

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


Anmelden zum Antworten