title: Operator new initializes memory to zero
body: <p>There is such code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  int main(){
    unsigned int* wsk2 = new unsigned int(5);
    std::cout &lt;&lt; "wsk2: " &lt;&lt; wsk2 &lt;&lt; " " &lt;&lt; *wsk2 &lt;&lt; std::endl;
    delete wsk2;
    wsk2 = new unsigned int;
    std::cout &lt;&lt; "wsk2: " &lt;&lt; wsk2 &lt;&lt; " " &lt;&lt; *wsk2 &lt;&lt; std::endl;
    return 0;
  }
  </code></pre>
  
  <p>Result:</p>
  
  <pre><code>wsk2: 0x928e008 5
  wsk2: 0x928e008 0
  </code></pre>
  
  <p>I have read that <code>new</code> doesn't initialize memory with zeroes. But here it seems that it does. How does it work?</p>