title: Declaring an array of negative length
body: <p>What happens in C when you create an array of negative length?</p>
  
  <p>For instance:</p>
  
  <pre><code>int n = -35;
  
  int testArray[n];
  
  for(int i = 0; i &lt; 10; i++)
      testArray[i]=i+1;
  </code></pre>
  
  <p>This code will compile (and brings up no warnings with -Wall enabled), and it seems you can assign to <code>testArray[0]</code> without issue.  Assigning past that gives either a segfault or illegal instruction error, and reading anything from the array says "Abort trap" (I'm not familiar with that one).  I realize this is somewhat academic, and would (hopefully) never come up in real life, but is there any particular way that the C standard says to treat such arrays, or is does it vary from compiler to compiler?</p>