title: Is the pointer guaranteed to preserve its value after `delete` in C++?
body: <p>Inspired by <a href="https://stackoverflow.com/q/4990462/57428">this question</a>.</p>
  
  <p>Suppose in C++ code I have a valid pointer and properly <code>delete</code> it. According to C++ standard, the pointer will become invalid (3.7.3.2/4 - <em>the deallocation function will render invalid all pointers referring to all parts of deallocated storage</em>).</p>
  
  <p>At least in most implementations it preserves the value and will store exactly the same address as before <code>delete</code>, however <a href="https://stackoverflow.com/q/1866461/57428">using the value is undefined behavior</a>.</p>
  
  <p>Does the standard guarantee that the pointer will preserve its value or is the value allowed to change?</p>