Я знаю, что стандарты C, предшествующие C99 (а также C ++), говорят, что размер массива в стеке должен быть известен во время компиляции. Но почему так? Массив в стеке выделяется во время выполнения. Итак, почему размер имеет значение во время компиляции? Надеюсь, кто-нибудь объяснит мне, что компилятор будет делать с размером во время компиляции. Спасибо.
Пример такого массива:
void func()
{
/*Here "array" is a local variable on stack, its space is allocated
*at run-time. Why does the compiler need know its size at compile-time?
*/
int array[10];
}