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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sen 中级黑马   /  2014-4-13 21:47  /  1524 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sen 于 2014-5-20 11:59 编辑

内存的5个分区中的四个大体百度了之后明白了意思。
唯有“堆”不太能理解,在视屏中老师又说是“对象”,
请问有没有具体一点的解释呢?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

6 个回复

倒序浏览
堆是给程序员用的
你用malloc申请的空间 就是堆里的
回复 使用道具 举报
堆和栈的区别可以用如下的比喻来看出:
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。
使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。
而且堆区使我们程序员的地盘   但是如果管理不好的话   可能会造成内存泄露   

评分

参与人数 1黑马币 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
堆内存就是new出来的
   每个堆都有对应的对象。     每个对象都是实体。
  意思是  堆就是实体。
回复 使用道具 举报
C++像这种堆栈的说法很明确,但是C++说白点,就是C的衍生,一些基本的栈、堆、静态区、代码区的概念,C里面也有,只是见到的不多。数据结构就是会用到栈堆的概念。
在C语言中  执行
char *p = new char [20];
这就是堆分配。
回复 使用道具 举报
堆内存是使用链表管理的,这个不理解也没事,其实你只需要知道OC的对象是存在堆中,而堆中的内存是需要程序员自己来分配、释放内存的。。

在ARC中,并不是不需要管理内存,ARC是一种编译器特性,会自动帮程序员生成内存管理的代码。苹果这样做,是为了提高开发的效率,让程序员吧大部分的精力放在业务逻辑上。

评分

参与人数 1黑马币 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
sen 中级黑马 2014-4-15 15:09:13
7#
好的 谢谢大家
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马