title: why g++ gives error : cannot convert ‘int (*)[3]’ to ‘int (*)[]’ in initialization
body: <p>When I try to compile the following code with g++:</p>
  
  <pre><code>int main()
  {
      int a[3] = {0, 1, 2};
      int (* p)[] = &amp;a;
  }
  </code></pre>
  
  <p>compiler gives the following error : "cannot convert ‘int (<em>)[3]’ to ‘int (</em>)[]’ in initialization". 
  Why isn't it possible to convert int (<em>)[3] to int (</em>)[]? 
  And if it is not possible then how a variable of type 'int (*)[]' should be initialized?</p>