Re: gcc bug?
On Thursday 18 November 2004 16:59, Dmitry A. Fedorov wrote:
> On Thu, 18 Nov 2004, Dmitry E. Oboukhov wrote:
> > в чем смысл масива с нулевой длиной кроме как использование
> > идентификатора как указателя?
> > можете привести пример?
> struct pkt
> {
> uint32_t flags;
> uint32_t length;
> char data[0]; // data[1] для старых компиляторов
> };
> struct pkt* create_pkt( size_t data_length )
> {
> struct pkt* pkt =
> (struct pkt*) malloc( sizeof(struct pkt) + data_length );
>
> if (pkt != NULL)
> {
> pkt->flags = PKT_NODELAY;
> pkt->length = data_length;
> memset( pkt->data, 0, data_length );
> pkt->data[4] = 'r';
> pkt->data[5] = 't';
> pkt->data[6] = 'f';
> pkt->data[7] = 'm';
> }
>
> returm pkt;
> }
>
Я чего-то не понимаю. Зачем всё-таки нужен char data[0], почему не
использовать char *data?
Reply to:
- References:
- Re: gcc bug?
- From: "Dmitry A. Fedorov" <D.A.Fedorov@inp.nsk.su>