En C (en utilisant gcc) je peux déclarer un struct de longueur variable comme ci-dessous :
typedef struct ProtocolFrame
{
uint8_t op;
uint32_t address;
uint16_t size;
uint8_t payload[0];
} ProtocolFrame;
alors je peux attribuer un cadre différent :
ProtocolFrame *frA;
ProtocolFrame *frB;
frA = malloc(sizeof(ProtocolFrame) + 50);
frB = malloc(sizeof(ProtocolFrame));
Dans cet exemple, frA a un champ de charge utile de 50 octets, et frB n'a pas de charge utile.
Puis-je faire la même chose en C++ en utilisant l'opérateur new ?