Porblem mit std::vector

MortenV

Mitglied
Hi,
ich habe schon oft den <vecor> als Container genutzt, doch diesmal läuft irgendwas schief. Ich habe wohl einen denkfehler..
Code:
//Header
#include <vector>

class CDecisionMaker {

protected:
    typedef struct{
        int        cur_op;
        long    frame_idx;
        long    frame_val;
      } FrameInfo;

    FrameInfo m_FrameInfo;
    std::vector<FrameInfo> m_vFrameInfo;

..
Ich will die Struktur in den Vektor schieben...
Code:
void CDecisionMaker::SetVectorData(int op, long idx, long val){

    m_FrameInfo.cur_op        = op;  // Access Violation an dieser Stelle
    m_FrameInfo.frame_idx    = idx; // ankommende Daten sin i.O.
    m_FrameInfo.frame_val    = val;
    
    m_vFrameInfo.push_back(m_FrameInfo);
}
Ich kann mir den Fehler nicht erklären, da schon einige male so realisiert.
Habt ihr eine Idee ? Das Ganze unter VC++

Gruß Morten
 
Diese Membervariable "FrameInfo m_FrameInfo;" ist doch eigentlich überflüssig. Ich denke, dadurch entsteht das Problem. Die Access Violation kommt doch bestimmt erst beim zweiten Aufruf von "SetVectorData()"?
Du solltest eine neue Struktur anlegen und diese in den Vector schieben:
C++:
void CDecisionMaker::SetVectorData(int op, long idx, long val){

    FrameInfo frameInfo;
    frameInfo.cur_op        = op;  // Access Violation an dieser Stelle
    frameInfo.frame_idx    = idx; // ankommende Daten sin i.O.
    frameInfo.frame_val    = val;
    
    m_vFrameInfo.push_back(frameInfo);
}

Gruß
MCoder
 
Zurück