Пожалуйста, помогите мне создать вложенную структуру с массивом. Как исправить этот код?Вложенная структура с массивом
class CMain
{
public:
CMain();
~CMain();
private:
struct
{
CCheckSum() : BufferSize(500) {memset(Buffer, 0, BufferSize);}
const int BufferSize;
char Buffer[BufferSize];
}SmallBuffer;
}
Спасибо.
Я намеревался использовать массив, потому что мне нужно заполнить его последовательными блоками необработанных байтов данных. Push_back() это приведет к перераспределению, которое я хочу избежать. Если я объявляю вектор 500 байтов, как мне копировать, скажем, блоки из 100, 200 и 200 байтов в него один за другим, не помещая их побайтно с оператором []? – jackhab
На самом деле, подумайте об этом, 'std: :(tr1: :) array', а не' std :: vector' - это правильная вещь для использования здесь, так как размер (предположительно) является константой времени компиляции , –
Две вещи: 1) Вы не будете отталкиваться назад, у вас уже есть массив из 500 байтов. 2) Векторы хранятся в виде непрерывной памяти, поэтому вы можете использовать их как массивы raw-pointer. & Buffer [0] - указатель на начало массива, который может использоваться в функциях памяти c-style. – luke