char array in vector speichern



  • Hallo!
    Ist es möglich, char Arrays in einem std::vector zu speichern? Ich meine damit
    nicht die Zeiger auf das erste Element, sondern die Werte.
    Es soll letztendlich folgendes möglich sein:

    std::vector <unsigned char[4096]> mCharVector;
    
    void Fill()
    {
    unsigned char Buffer[4096];
    mCharVector.push_back(*Buffer) //hier liegt wahrscheinlich der Fehler,aber
                                  //Buffer ohne * ist ein Zeiger auf das erste
                                  //Element
    }
    
    void Read()
    {
    unsigned char Buffer[4096];
    Buffer = mCharVector[0];
    mCharVector.erase(mCharVector.begin());
    }
    

    Ich krieg's jedenfalls nicht hin.



  • Nein, geht so nicht...

    du musst die 4096 byte scho iwie in nen struct/class packen oder noch mal std::vector oder std::tr1::array oder so was in der richtung verwenden...
    oder
    std::vector<boost::scoped_ptr<unsigned char>>

    das das so nciht geht liegt daran, dass in C und C++ CArrays nicht kopiert werden, sondern immer nur ein Zeiger übergeben wird...

    bb



  • Danke!
    Dacht ich mir. Ich werd's in ne Klasse packen.


Anmelden zum Antworten