title: Deleting array of class objects?
body: <p>It's almost common knowledge that the code below correctly frees the memory of 100 integers.</p>
  
  <pre><code>int* ip = new int[100];
  delete [] ip; 
  </code></pre>
  
  <p>And I think even for user defined classes it works:</p>
  
  <pre><code>Node* ip = new Node[100];
  delete [] ip; 
  </code></pre>
  
  <ol>
  <li><p>In the first case, is the size of memory to be freed (400 bytes), determined at compile time? Basically, what goes on internally?</p></li>
  <li><p>In the second case, will the destructor  of <code>Node</code> be called on each of the 100 objects?</p></li>
  </ol>
  
  <p>Essentially, I have been using this syntax, but never understood what goes on internally and now I am curious.</p>