История изменений
Исправление monk, (текущая версия) :
В списке UB есть:
Addition or subtraction of a pointer into, or just beyond, an array object and an integer type produces a result that does not point into, or just beyond, the same array object1
&((int*)val)[1] === ((int*)val) + 1
Так что если val не является указателем на массив элементов типа int длиной не менее двух, будет UB.
Исходная версия monk, :
В списке UB есть:
Addition or subtraction of a pointer into, or just beyond, an array object and an integer type produces a result that does not point into, or just beyond, the same array object1
&((int*)val)[1]
== ((int*)val) + 1
Так что если val не является указателем на массив элементов типа int длиной не менее двух, будет UB.