内存模型--堆/heap

表白:黑白圣堂血天使,天剑鬼刀阿修罗。 
讲解对象:/内存模型--堆/heap
作者:融水公子 rsgz
汇编教程

汇编教程 http://www.rsgz.top/post/91.html

汇编里面要了解两个内存模型,堆heap和栈stack,这篇文章讲讲堆heap
CPU是通过寄存器和内存交流,程序运行时候需要系统划分一块内存存放运行时候产生的数据,这块内存分为起始位置的低位,和结束位置的高位,比如:下面这块内存是从地址0x1000到地址0x8000。

因为用户主动请求,新建变量这样的动态的内存占用请求,系统就会把下面开始的一部分内存分给用户使用,叫做 Heap(堆),它由起始地址开始,从低位(地址)向高位(地址)增长,它不会自动消失,必须手动释放,或者由垃圾回收机制来回收。用户要求得到10个字节内存,那么从起始地址0x1000开始给他分配,一直分配到地址0x100A,如果再要求得到22个字节,那么就分配到0x1020。

1到2间隔1个空间。
0到10间隔10个空间,A在十六进制表示10,所以申请10字节就是0x1000-0x100A
0到32间隔32空间,0x1000-0x1020刚好就是间隔32空间。
(第一次10字节,第二次22字节所以是32空间)

为了便于记忆:用户堆,起始低位!
花了一个画,给大家欣赏一下

===

公众号:小雪妃

谢谢大家的支持!可以点击我的头像,进入我的空间浏览更多文章呢。建议大家360doc[www.360doc.com]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。
---

(0)

相关推荐