title: Error: Variable-sized object may not be initialized
body: <pre><code>#define L 1
  #define M L+1
  
  int main(void){
  
      int N=L*M*2;
      char s [N]={'1','2'};
      printf("%d", sizeof(s));
  
      return 1;   
  }
  </code></pre>
  
  <p>Why does the above code cannot be compiled? The compiler of Eclipse says two things:</p>
  
  <ol>
  <li><em>Variable-sized object may not be initialized:</em> Is because the definition of N with M and L at the macro  or is it because I can't initialize an array with <em>type</em> arr[x] where x is variable under any circumstances?   </li>
  <li><em>excess elements in array initializer</em>- What does it mean?</li>
  </ol>