[Rd] Why does an empty vector occupy 40 bytes?
Hadley Wickham
h.wickham at gmail.com
Thu Aug 29 20:37:06 CEST 2013
> Not to be picky, but that is not the point. The alignment is due to the attrib pointer which is at offset 8 despite the fact that there is only a 4-byte element in front of it. Maybe for better illustration, this is the layout on 64-bit machines:
Ok, thanks for the clarification.
>
> * 4 bytes: sxpinfo header (= 32 bits)
> * 4 bytes: --- padding so next ptr is aligned ---
> * 8 bytes: pointer to attributes
> * 8 bytes: pointer to next node
> * 8 bytes: pointer to previous node
> * 4 bytes: length
> * 4 bytes: true length
>
> = 40 bytes
>
> This is already aligned so the payload alignment doesn't any extra padding so that has no effect at all.
Do pointers always have to be aligned?
Hadley
--
Chief Scientist, RStudio
http://had.co.nz/
More information about the R-devel
mailing list