A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 瑜尚 中级黑马   /  2016-7-17 08:33  /  773 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1)内存里面的堆和栈有什么区别呢?
2)什么样的情况分配堆内存,什么情况分配的是栈内存?
3)程序退出内存就会释放吗?
哎,感觉好晕啊,太多东西都不懂

1 个回复

倒序浏览
从静态存储区域分配,内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在
在栈上创建,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放,栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限
从堆上分配,亦称动态内存分配,程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在任何时候用free或delete释放内存,动态内存的生存周期由我们决定,使用非常灵活,但问题也最多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马