С одной стороны, массив x
не гарантируется для правильного выравнивания для int
.
Была тема для разговора о том, как это может повлиять на такие методы, как размещение new
. Следует отметить, что размещение нового должно происходить и в правильно выровненной памяти, но размещение нового часто используется с памятью, которая выделяется динамически, а функции выделения (в C и C ++) необходимы для возврата памяти, которая выровнена соответствующим образом для любого типа, в частности таким образом, адрес может быть назначен указателю любого типа.
То же самое не верно для памяти, выделенной компилятором для автоматических переменных.