This doesn't make sense to me. The manpage states that malloc() will returned memory aligned enough for *any* type (emphasis on *any*). You then don't use the value of 16 at all other than in assertions. Why do you think that malloc can return `1` when you also agree that malloc will also return memory with the proper alignment for any type?