[Rd] Why does an empty vector occupy 40 bytes?
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?
Chief Scientist, RStudio
More information about the R-devel