В C (используя gcc) я могу объявить структуру переменной длины, как показано ниже:
typedef struct ProtocolFrame
{
uint8_t op;
uint32_t address;
uint16_t size;
uint8_t payload[0];
} ProtocolFrame;
тогда я могу выделить другой кадр:
ProtocolFrame *frA;
ProtocolFrame *frB;
frA = malloc(sizeof(ProtocolFrame) + 50);
frB = malloc(sizeof(ProtocolFrame));
В этом примере frA имеет поле полезной нагрузки размером 50 байтов, и frB не имеет полезной нагрузки
Могу ли я сделать то же самое на C ++ с помощью оператора new?