On Tue, Aug 26, 2014 at 01:37:44PM +0100, Ramsay Jones wrote:

> > On my 64-bit system using gcc, sizeof() returns 16; it has to pad the
> > whole thing to 64-bit alignment in case I put two of them in an array.
> > But offsetof(name) is 12, since the array of char does not need the same
> > alignment; it can go right after the type and make use of the padding
> > bits.
> 
> Hmm, interesting. I must re-read the standard. I was convinced that the
> standard *requires* any alignment padding to come *before* the name field.
> (how would you put a, non-trivial, variable data structure into an array?)

I think you don't. How would you compute a[1] if a[0] has a variable
size?

You can put a flex-array structure into an array, but then each element
has the flex member as zero-size (and you should not access it, of
course).

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to