Bitte helfen Sie mir, eine verschachtelte Struktur mit einem Array zu erstellen. Wie behebe ich diesen Code?verschachtelte Struktur mit Array
class CMain
{
public:
CMain();
~CMain();
private:
struct
{
CCheckSum() : BufferSize(500) {memset(Buffer, 0, BufferSize);}
const int BufferSize;
char Buffer[BufferSize];
}SmallBuffer;
}
Danke.
Ich wollte Array verwenden, weil ich es mit aufeinanderfolgenden Blöcken von Rohdaten Bytes füllen muss. Push_back() wird eine Neuzuweisung verursachen, die ich vermeiden möchte. Wenn ich einen Vektor von 500 Bytes deklariere, wie kann ich Blöcke von 100, 200 und 200 Bytes hintereinander kopieren, ohne sie Byte für Byte mit dem Operator [] zu setzen? – jackhab
Eigentlich, um darüber nachzudenken, ist 'std: :(tr1: :) array', nicht' std :: vector' die richtige Sache hier zu verwenden, da die Größe (soll sein) eine Kompilierzeitkonstante ist . –
Zwei Dinge: 1) Sie würden nicht zurückdrängen, Sie haben bereits eine Reihe von 500 Bytes. 2) Vektoren werden als zusammenhängender Speicher gespeichert, sodass Sie sie wie Raw-Pointer-Arrays verwenden können. & Buffer [0] ist ein Zeiger auf den Anfang des Arrays, der in C-Style-Speicherfunktionen verwendet werden kann. – luke