我注意到,在处理一些大型数组(例如双倍 1000 x 1000)时,如果我在 main() 内部声明数组,则我的程序会耗尽内存,但如果我在 main() 外部声明数组,则这种情况似乎永远不会发生,即使是更大的阵列。有人可以解释一下区别是什么吗?
当在函数内部声明变量时(在您的情况下,main
),它被分配在堆栈上,如果它太大(例如,一个大数组),你会遇到堆栈溢出.
在所有函数外部定义的变量是静态分配的。它的生命周期持续到程序终止为止。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)