[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: