Re: [PATCH] bisect: save heap memory. allocate only the required amount
- From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
- Date
- Aug 26, 2014, 12:59 UTC
- Message-ID
- <53FC84C8.1020300@ramsay1.demon.co.uk>
- In-Reply-To
- <20140826124344.GF29180@peff.net>
On 26/08/14 13:43, Jeff King wrote:
Show 18 quoted lines
> 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).
Exactly. ;-)
ATB, Ramsay Jones