array und Pointer problemme



  • Ich habe eine Variable die aus 32Wörter a 32 Bit bestehen soll d.h. sowas

    unsigned short m_Value[32];
    

    in dem Array will ich an einem bestimmten Wort und Bitposition die bValue reinschreiben

    unsigned short* m_Value;
    
    void CClass::setValue(bool bValue, unsigned short WNO,unsigned short BitPos){
        unsigned short WordNr = m_Value[WNO];
        //WordNr
    }
    

    da läuft schon mal mit dem Wordnummer was schief



  • Also entweder du legst dir ein Array mit fester Größe an oder du mußt dich selber um die Speicherverwaltung kümmern:

    //a:
    unsigned short m_value[32];
    
    void CClass::setval(bool bval,unsigned short pos)
    {
      unsigned short val=m_value[pos/(8*sizeof(short)];
      ...
    }
    
    //b:
    unsigned short* m_value;
    CClass::CClass(...) : ...,m_value(new unsigned short[32]) {}
    CClass::~CClass() {...;delete[]m_value;}
    
    void CClass::setval(...)//wie oben
    

    (PS: Möglichkeit 3 wäre es noch, einen vector zu verwenden)


Anmelden zum Antworten