Datentyp BYTE von variabler Größe erstellen



  • Hallo!

    Ich habe mir eine Klasse gemacht, die eine u.a. int Variable namens packetSize enthält. In eine Methode diese Klasse möchte ich jetzt eine Variable vom Typ BYTE erstellen mit der Größe (sagt man das so), die ich packetSize im Konstruktor zuweise. Ich möchte das machen, da ich diese eine Größe in mehreren Funktionen benötige und sie in allen gleich sein muß aber leicht zu ändern sein soll. Ich dachte mir eigentlich, daß ich nur im Konstruktor einen Wert ändere und schon paßt es überall. Allerdings bekomme ich bei der Zeile

    BYTE buffer[packetSize]

    drei Fehlermeldungen:

    error C2057: Konstanter Ausdruck erwartet
    error C2466: Reservierung eines Feldes der konstanten Groesse 0 nicht moeglich
    error C2133: 'buffer' : Unbekannte Groesse

    Wenn ich eine Zahl statt packetSize in die Klammern eintrage geht es wunderbar. Gibt es eine Möglichkeit die Sache irgendwie anders zu machen mit der Funktionalität die ich haben möchte?

    Vielen Dank schonmal!



  • #include <vector>
    
    std::vector<BYTE> *buffer = new std::vector(packetSize);
    


  • Lars Hupel schrieb:

    #include <vector>
    
    std::vector<BYTE> *buffer = new std::vector(packetSize);
    

    Du hast es gerne umständlich, oder?

    Wie wärs mit

    std::vector<BYTE> buffer(packetSize);
    // bzw in der Klasse
    class foo
    {
    private:
        std::vector<BYTE> buffer;
    public:
        ctor()
            : buffer(packetSize)
        {
        }
    };
    


  • Vielen Dank für die Antworten. Ich hoffe ich komme damit weiter!


Anmelden zum Antworten