Alignment and Padding
Certain items must be allocated at restricted locations; e.g., a floating point number must be allocated at a word (4-byte or 8-byte) boundary. This is called storage alignment.
In such cases, next is advanced to the next available boundary if needed, and the intervening storage is wasted; this is called padding.
To pad to a boundary of size m , perform:
wordaddress(next, m) = ( (next + m - 1) / m) * musing truncating integer arithmetic.
For records, a compaction algorithm could be used to minimize wasted storage.