c++如何用数组来模拟动态内存分配

 我来答
百度网友9f8ba65
2017-04-26 · TA获得超过1018个赞
知道小有建树答主
回答量:384
采纳率:86%
帮助的人:94.9万
展开全部
这个说起来有些麻烦,我以前做过类似的东西,手打不易啊。
一、你要定义一个数组,作为内存堆。
二、把上面定义的数组分页,比如4个字节更大字节一页,记录下每一页地址,可以定义得很大,越大管理这些内存需要的内存越小,但是也容易造成内存利用率不够。
三、上面分组后我们就可以定义一个结构体,大致包含内存页页号、是否已经被使用了,内存分配的唯一标识(用来区分哪些内存是同一片分配的内存)
四、这时候就可以写动态内存分配的函数了,根据需要分配的大小,找出一片未使用的连续的内存页。比如第二步中定义一页是4字节,需要5个字节的内存,就分配两页(多出来的3字节就没办法了,浪费掉了)。找到内存页后将几个内存页标记为已使用,同时给几个内存页赋想相同的内存分配标识,然后返回第一页的地址。
五、释放内存,根据内存分配的唯一标识,找到几片内存页,然后标记为未使用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式