c中数组的最大大小

时间:2014-02-17 09:52:36

标签: c arrays

为什么最大数组与本地声明和全局声明不同?

我在一些博客中读到,在本地声明的情况下,我们可以声明的最大数组大小为10 ^ 6,在全局声明的情况下,在10 ^ 7到2 * 10 ^ 8之间。这是什么原因?

2 个答案:

答案 0 :(得分:5)

这些数字通常并不意味着它们,它们特定于OS +机器。但是本地声明和全局声明是在虚拟内存的不同区域完成的。局部变量位于堆栈上,通常小于堆(用于动态分配的全局变量)

答案 1 :(得分:0)

全局声明在静态内存上保留内存,该内存足够大,不会造成内存问题。但是本地声明会在堆栈上保留内存,因为它的内存有限。因此,您不能将数组声明为具有大量内存的本地对象,否则您将超出内存范围(称为堆栈溢出)