Ребята, а как же в режиме C++ объявить структуру такого типа:
Код
typedef struct udp_packet {
u16 from_port;
u16 to_port;
u16 len;
u16 cksum;
u8 data[];
} udp_packet_t;
или
Код
// IP-пакет
typedef struct ip_packet {
u8 ver_head_len; // версия и длина заголовка =0x45
u8 tos; //тип сервиса
u16 total_len; //длина всего пакета
u16 fragment_id; //идентификатор фрагмента
u16 flags_framgent_offset; //смещение фрагмента
u8 ttl; //TTL
u8 protocol; //код протокола
u16 cksum; //контрольная сумма заголовка
u32 from_addr; //IP-адрес отправителя
u32 to_addr; //IP-адрес получателя
u8 data[];
} ip_packet_t;
??
Или как по другому удобно работать с протоколом ip-udp, например?
В Си это решается просто:
Код
char buffer[256];
ip_packet_t* ip = buffer;
udp_packet_t *udp = ip->data;
strcpy(udp->data, "test");
как в С++ написать подобный код?
UPD:
блин... туплю... ничего же не мешает мне объявить хоть data[1000000000] в описании, всё равно же память под неё не выделяется, если использовать как указатель
Сообщение отредактировал vertexodessa - Oct 29 2013, 17:15