我在腾讯面试遇到的栈和堆的一些问题?

面试官问道:知道栈和堆吗
我:知道
然后是一些我能答出来的问题
最后问道说:栈大吗
我:不大
面试官:不大是多大
我:几兆吧
面试官:为什么不大?栈为什么比堆小?为什么栈不能大?
我:........不太说得上来
可能是我对栈和堆了解的太少太少了 太肤浅了 回答不上来这个问题 希望有没有大神稍微帮我解答一下 困惑了我挺久的。。。。
谢谢了

因为堆栈需要连续存储,如果很大的话,那么就会浪费大量的内存空间。
操作系统中每个线程都有一个独立的堆栈,你算算要多少内存。
而且线程切换的时候,意味着堆栈必须切换,缓存开销也很大。
而堆每个进程只需要1个,而且不需要连续存储,可以按需分配,不够扩容。