// Clause: 6.3.2.3 / 6.5.3.2 — converting an integer to a pointer that does not correctly represent the address of an object and then dereferencing is undefined.
#include <stdio.h>
#include <stdint.h>
int main(void){
    uintptr_t u = 1; // almost certainly invalid address
    int *p = (int*)u;
    *p = 5; // UB
    printf("%p\n", (void*)p);
    return 0;
}
