Я знаю, что стандарты C, предшествующие C99 (а также С++), говорят, что размер массива в стеке должен быть известен во время компиляции. Но почему? Массив на стеке распределяется во время выполнения. Так почему размер имеет значение во время компиляции? Надеюсь, кто-то объяснит мне, что компилятор будет делать с размером во время компиляции. Благодарю.
Пример такого массива:
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];
}