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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hee 中级黑马   /  2014-12-11 11:50  /  1145 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hee 于 2014-12-14 21:58 编辑

堆空间内存与栈空间内存的区别


4 个回复

倒序浏览
栈:存放函数的参数值,局部变量的值等。栈内存分配运算在指令集中,效率高,分配内存有限.
堆:程序在运行的时候用malloc或new申请内存,在适当的时候用free或delete释放内存。动态内存不再使用,需要释放掉,否则,我们认为发生了内存泄漏现象。
数据结构还是很重要的,不要光看着语言设计(我是菜鸟,求共同进步)
回复 使用道具 举报
hee 中级黑马 2014-12-11 15:48:20
藤椅
sweet凌风 发表于 2014-12-11 12:32
栈:存放函数的参数值,局部变量的值等。栈内存分配运算在指令集中,效率高,分配内存有限.
堆:程序在运行 ...

高手,答的真好。
回复 使用道具 举报
在OC中,堆内存是自动分配的,存储是OC对象,需要手动释放。
栈内存是系统自动分配的,一般存放的是基本数据类型和局部变量,不需要手动管理内存。
回复 使用道具 举报
举例说明:
以引用变量为例,引用变量本身存储在栈中,引用变量指向的值存储在堆中。
如int[] array = {0, 1, 2, 3, 4};
变量arr(数组名)存储在栈中,变量arr的值(数组元素)存储在堆中(普通结构)。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马