What does malloc() return if it fails?
volatile char *x = 0;
And what happens if you write to that address? *x = 69;
The answers to these questions, whilst not defined by the C language, are portable enough.