I've worked on a system where NULL mapped to valid memory. (It was an embedded system, so the memory map was custom and bizarre). Of course, insanity ensued when new programmers worked on it.
Is it the kind of system for which memset(somestruct, 0, sizeof(somestruct)) doesn't work if the struct has pointers (NULL isn't 0, so null checks will fail if one inits such struct like this)?
NULL does not have to be 0 in the sense that it is represented by all 0 bits, it need only compare equal to 0.
Not really, NULL is still 0, but the address "0" is valid and readable/writable.
Yeah but to fix that, you only have to not use that byte of memory. Or not have to point to it. Not a real issue.