title: why multidimensional array must have bounds when I specify it in the initialization in cpp
body: <p>when trying to initialize a multidimensional array like this:</p>
  
  <pre><code>int a[][] = { {1,2,3},
                {4,5,6} };
  </code></pre>
  
  <p>I get this error:</p>
  
  <pre><code>error: declaration of iArray as multidimensional array must have bounds for all dimensions except the first
  </code></pre>
  
  <p>but I want to understand why, the compiler should know it's a[2][3] array because of the {}.</p>
  
  <p>I know that is allowed also to do:</p>
  
  <pre><code>int a[][3] = {1,2,3,4,5,6};
  </code></pre>
  
  <p>and for that case indeed the compiler can't guess what is the 2nd dimension if it missing, but why not to allow the use of a[][] in the first case?</p>