title: Is new int[10]() valid c++?
body: <p>While trying to answer <a href="https://stackoverflow.com/questions/2468203/how-can-i-make-new-default-initialize-the-array-of-primitive-types">this</a> question I found that the code <code>int* p = new int[10]();</code> compiles fine with VC9 compiler and initializes the integers to 0. So my questions are:</p>
  
  <ol>
  <li>First of all is this valid C++ or is
  it a microsoft extension?</li>
  <li>Is it guaranteed to initialize all
  the elements of the array?</li>
  <li>Also, is there any difference if I
  do <code>new int;</code> or <code>new int();</code>? Does
  the latter guarantee to initialize
  the variable?</li>
  </ol>