title: Does new[] call default constructor in C++?
body: <p>When I use new[] to create an array of my classes:</p>
  
  <pre><code>int count = 10;
  A *arr = new A[count];
  </code></pre>
  
  <p>I see that it calls a default constructor of <code>A</code> <code>count</code> times. As a result <code>arr</code> has <code>count</code> initialized objects of type <code>A</code>.
  But if I use the same thing to construct an int array:</p>
  
  <pre><code>int *arr2 = new int[count];
  </code></pre>
  
  <p>it is not initialized. All values are something like <code>-842150451</code> though default constructor of int assignes its value to <code>0</code>.</p>
  
  <p>Why is there so different behavior? Does a default constructor not called only for built-in types?</p>