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 GroesseWenn 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!