黑马程序员技术交流社区

标题: 内存管理问题 [打印本页]

作者: 瑜尚    时间: 2016-7-17 08:33
标题: 内存管理问题
1)内存里面的堆和栈有什么区别呢?
2)什么样的情况分配堆内存,什么情况分配的是栈内存?
3)程序退出内存就会释放吗?
哎,感觉好晕啊,太多东西都不懂
作者: wangxiaopang    时间: 2016-7-17 23:45
从静态存储区域分配,内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在
在栈上创建,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放,栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限
从堆上分配,亦称动态内存分配,程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在任何时候用free或delete释放内存,动态内存的生存周期由我们决定,使用非常灵活,但问题也最多





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2