> No. It's undefined behaviour, it may do anything or nothing.
This is clearly nonsense.
This is clearly nonsense.
Compilers are allowed to assume undefined behavior doesn't happen, and dereferencing an invalid pointer is undefined behavior. You don't have to like it, but that's how it is.
It is indeed. Unfortunately it's also the C language standard.