title: Why am I limited to an arbitrary small ( array size when initializing an array with a const length in C?
body: <p>Note: I have seen <a href="https://stackoverflow.com/questions/44267827/in-c-why-cant-a-const-variable-be-used-as-an-array-size-initializer">In C, why can&#39;t a const variable be used as an array size initializer?</a> already, but this doesn't quite answer my question (or I am not understanding it fully).</p>
  
  <p>This works:</p>
  
  <pre><code>int main() {
      const long COUNT = 1048106;
      int nums[COUNT];
      return 0;
  }
  </code></pre>
  
  <p>This crashes:</p>
  
  <pre><code>int main() {
      const long COUNT = 1048106000;
      int nums[COUNT];
      return 0;
  }
  </code></pre>
  
  <p>I have read that this is actually an inappropriate use of <code>const</code> to begin with (since it means read-only, not evaluated at compile time).</p>
  
  <p>So I am happy to use <code>#define</code> or whatnot instead, but still, it bothers me why this works for some lengths but not but not any higher.</p>