【发布时间】:2016-03-28 12:18:19
【问题描述】:
#define N 10000000
int arr[N];
int main(void)
{
int i;
for(i=0;i<N;i++)
arr[i]=i+1;
}
为什么全局声明数组不会产生任何编译错误?堆栈中 N*4 字节的连续内存可用的机会是多少?
使用 static 关键字声明数组也是如此。
【问题讨论】:
-
全局变量通常放在
data或bss部分,而不是放在堆栈中。 -
...这是因为全局变量是全局的。不仅仅对一个函数可见。
标签: c arrays global-variables