问几个详细点的堆栈问题
本人小白一个 看到程序内存管理这一块 有几个不明白的地方
1 在调用不同函数的时候 栈的空间是常量吗?
如果不是常量 怎么确认栈的大小?会不会是根据函数参数和里面变量定义的多少来确定栈大小,个人感觉栈大小应该由编译时确认的因素来决定;
如果是常量,那这个数不可能太大,如果太大,递归调用要哭了,但是如果很小,我int a[10000];会不会不行(vc试了下,这样是可以的,但我网上看资料说windows给栈的空间是几M,费解)
2 在malloc new的时候 得到的空间在程序逻辑层肯定是连续的 但是如果操作系统的空闲内存表中已经没有连续空间可分配给程序了 但是几块空间加起来是够的 这种情况会分配吗?
我感觉会分配(要不太不智能了),但是如果空间太分散了,连续存储的优点不就没了么
3 堆栈的感念 是只有c c++这种偏底层的语言有 还是程序比较通用的思想 像JAVA这样的语言也有(可能被封装了)?
有的问题可能显得很傻x 还是望解答 谢谢