Embedded systems are an exception, though. They may not have a MMU, and in such a case the operation will succeed.
>so that if a pointer is checked after it has already been dereferenced, it cannot be null.
sound to me that if i've never deref the pointer anytime before(e.g the null check is at the beginning of function), the compiler won't remove this check.
> This option is enabled by default on most targets. On AVR and MSP430, this option is completely disabled.
No, certainly not, but you can do
`if(ptr == NULL) return;`
which is correct but unnecessary since `free` is required to do that check.