title: Array of pointers to an array of fixed size
body: <p>I tried to assign two fixed-size arrays to an array of pointers to them, but the compiler warns me and I don't understand why.</p>
  
  <pre><code>int A[5][5];
  int B[5][5];
  int*** C = {&amp;A, &amp;B};
  </code></pre>
  
  <p>This code compiles with the following warning:</p>
  
  <blockquote>
    <p>warning: initialization from incompatible pointer type [enabled by default]</p>
  </blockquote>
  
  <p>If I run the code, it will raise a <a href="http://en.wikipedia.org/wiki/Segmentation_fault" rel="nofollow">segmentation fault</a>. However, if I dynamically allocate <code>A</code> and <code>B</code>, it works just fine. <strong>Why is this?</strong></p>