Conceptually, dereferencing a pointer then taking the address of the result is a no-op, you get back what you put in.  There&#x27;s no <i>requirement</i> for dereferencing a null pointer to segfault, only an expectation of many modern commodity-system programmers.  Some systems allow you to dereference NULL and just return a bunch of zeros there.  It&#x27;s allowed by C and C++.<p>The real question is, how does anyone compile without &quot;-Wall -Werror&quot; in 2015?  Ignoring your compiler when it tells you your code is wrong is negligence.