为什么最大数组与本地声明和全局声明不同?
我在一些博客中读到,在本地声明的情况下,我们可以声明的最大数组大小为10 ^ 6,在全局声明的情况下,在10 ^ 7到2 * 10 ^ 8之间。这是什么原因?
答案 0 :(得分:5)
这些数字通常并不意味着它们,它们特定于OS +机器。但是本地声明和全局声明是在虚拟内存的不同区域完成的。局部变量位于堆栈上,通常小于堆(用于动态分配的全局变量)
答案 1 :(得分:0)
全局声明在静态内存上保留内存,该内存足够大,不会造成内存问题。但是本地声明会在堆栈上保留内存,因为它的内存有限。因此,您不能将数组声明为具有大量内存的本地对象,否则您将超出内存范围(称为堆栈溢出)