title: Memory allocation on C++ object creation
body: <p>The different size of memory allocation is observed during the object creation on class C below,</p>
  
  <pre><code>class C {
   int i;
   int j;
  };
  
  void f() {
   C *c = new C;
   C *c2 = new C[2];
   C (*c3)[2] = new C[2][2];
  }
  </code></pre>
  
  <p>c is allocated with 8 bytes;</p>
  
  <p>c2 is allocated with 8*2+4 bytes;</p>
  
  <p>c3 is allocated with 8*2*2+4 bytes. </p>
  
  <p>Why does c2 and c3 aquire 4 more bytes?</p>