Alignment is defined in the Standard as follows:
An alignment is an implementation-defined integer value representing the number of bytes between successive addresses at which a given object can be allocated.
However, this does not imply that such addresses are multiples of the alignment value. For instance, two double
objects at addresses 0x01
and 0x09
satisfies the above definition.
Is it guaranteed somehow that an address of an object is a multiple of the alignment value for its type?