// Clause: 6.5.6/6.5.7 — if the result of pointer arithmetic does not point into the same array object or one past, behavior is undefined (especially if used).
#include <stdio.h>
int main(void){
    int a[3]={1,2,3}, b[3]={4,5,6};
    int *p = a + (&b[0] - &a[0]); // compute pointer into a using delta to b -> nonsense
    int v = *p; // UB if not within a (likely)
    printf("%d\n", v);
    return 0;
}
