C11 says:
(C11, 7.24.2.1p2) “The memcpy function copies n characters from the object pointed to by s2 into the object pointed to by s1.”
&a + 1
itself is a valid pointer to integer addition but &a + 1
is not a pointer to an object, so the call invokes undefined behavior.