title: extern arrays in c without size
body: <p>Not compiling:</p>
  
  <pre><code>int a[];
  </code></pre>
  
  <p>Compiling:</p>
  
  <pre><code>extern int a[];
  </code></pre>
  
  <p>Not compiling (it can't find sizeof):</p>
  
  <pre><code>printf("%lu\n", sizeof(a)/sizeof(int));
  </code></pre>
  
  <p>So questions:</p>
  
  <ol>
  <li>why it is possible to create extern array.</li>
  <li>how much memory allocated?</li>
  </ol>
  
  <p>The reason of question - <a href="http://users.dcc.uchile.cl/~rbaeza/handbook/algs/4/444.sort.c" rel="nofollow">http://users.dcc.uchile.cl/~rbaeza/handbook/algs/4/444.sort.c</a></p>
  
  <pre><code>extern int maxfiles, maxruns[], actruns[];
  for (i=0; i&lt;=maxfiles; i++) maxruns[i] = actruns[i] = 0;
  </code></pre>
  
  <p>Is it correct?</p>