堆栈不是是什么具体的存储器,都是是内存,只不过有不同的用处。就像一个柜子,你可以分成一个大柜门,另一些空间可以做成些抽屉。其实都是存储,但是可以把功能更详细的分开,各自有自己的适用场合。
内存堆栈和楼上说的数据结构堆栈概念上还是有很大区别的。
这里的堆和栈不仅仅是按照数据结构里的堆和栈来理解,更倾向于表示两种不同作用的内存区域。
栈是有编译器来管理的,具体的大小可能根据编译器不同而异,编译器也可以手动设置栈的大小,通常有1M和2M的,比如在你定义变量时,由编译器将变量压栈,作用域结束,编译器控制变量出栈,程序员不能很直接的操作栈。
堆内存是向系统申请的内存,由程序员管理的,你new或者malloc时系统正常情况下回给你一块堆内存空间,你爱什么时候存数据都行,想存什么就存什么,想什么时候释放(delete,free)都可以。堆的大小没有什么具体数值,看机器的运行状况,配置状况而定。