#define N 10000000
int arr[N];
int main(void)
{
int i;
for(i=0;i<N;i++)
arr[i]=i+1;
}
Почему объявление массива глобально не дает ошибок компиляции? Какова вероятность наличия смежной памяти N * 4 байта в стеке? То же самое для объявления массива с ключевым словом static
.Как глобальная декларация массива большого размера работает в C?
Глобальные переменные обычно помещаются в разделы 'data' или' bss', а не в стек. – owacoder
... и это потому, что глобальные переменные _global_. Не только видимый для одной функции. – gnasher729