黑马程序员技术交流社区
标题:
内存里的堆和栈到底是怎么回事呢?
[打印本页]
作者:
派大星
时间:
2012-2-14 16:12
标题:
内存里的堆和栈到底是怎么回事呢?
如题. 只知道内存是个硬件. 具体里面看不到. 这个到底什么意思呢?
作者:
周平武
时间:
2012-2-14 16:23
堆 heap
栈 stack
是两种不同的数据结构
stack的特点是先入后出 就像叠盘子 先放上去的盘子后拿走(底里的抽不出来自然最后才能拿走)
stack和heap放在一起讨论的话 其实不是讲的数据结构了 是说操作系统给程序分配内存的方式
对于一个程序来说 运行的时候 系统分配了一定内存给它 其中一块叫堆 一块叫栈
堆里面主要放 动态分配的内容 比如c里面用 malloc 分配到的空间 就在堆里 c++里面用new 分配到的也在堆里
栈里面放 函数的局部变量
一个函数的局部变量 会在这个函数被调用时push到栈里 这个函数返回的时候才从栈里面pop出来
栈的先入后出的顺序使得函数可以嵌套 递归 如果递归层数太多 栈也会满 就会出现栈溢出……
作者:
魏庆君
时间:
2012-5-22 06:56
只要知道栈是先进后出就行了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2