- 0
- 0
- 约1.44万字
- 约 20页
- 2016-11-24 发布于辽宁
- 举报
学士学位论文-—c++内存池设计.doc
C++内存池设计
在项目中进程要对变量和对象分配空间,由于频繁的使用new和delete很消耗程序的运行时间,而且容易产生各种内存泄露,内存释放错误等问题。为此,需要设计一个通用的内存池来完成相关的分配和释放的工作。
建立内存池:
首先向系统申请一块内存,这块内存的大小由使用者根据需要设置初始内存大小。
定义一个如下面代码所示的双向链表,将从系统分配的内存分为若干块。使用双向链表方便指针向前和向后遍历查找。
链表中*Data指向了系统分配的内存,pUser使用二级指针保存了内存申请者的地址,方便以后系统内存块更改,改变申请者的指向。后面会详细介绍。将双向链表指向指向内存如下所示:
假设内存池初始块数为4块,每块的大小为100个字节,则向系统申请400个字节的内存块,每块的大小为100字节。之后使用双向链表DATA指针指向内存块,每个指针能分配的大小如图所示从大到小递减。
对象内存分配:
对内存的链表指针分配好后,用户可以使用内存池进行内存分配,对于用户的内存分配有两种情况,一种是在现有的内存池中能找到合适的内存块,另一种情况是现有内的内存池没有足够的内存块来分配,需要重新向系统申请内存来满足用户的需求。下面分别就这两种内存分配情况进行说明:
情况1内存池有足够的内存块进行分配
假设用户申请了240个字节的内存空间,内存池现在有四个内存块
您可能关注的文档
- 学士学位论文-—40kw二级行星减速器设计.doc
- 学士学位论文-—35kv黄金变电站输变电工程初步设计说明书.doc
- 学士学位论文-—50t屠宰废水回用处理超滤系统项目设计书.doc
- 学士学位论文-—50kw4极变频调速同步电动机的电磁设计方案及控制系统的设计.doc
- 学士学位论文-—51单片机的16x16led点阵式汉字电子显示屏的设计.doc
- 学士学位论文-—51单片机电子时钟课程设计.doc
- 学士学位论文-—60头基础良种母牛繁育基地新建项目扩初设计.doc
- 学士学位论文-—60万ta焦化厂粗苯工段的工艺设计.doc
- 学士学位论文-—60万方天然气液化项目前期调研报告.doc
- 学士学位论文-—75t循环流化床锅炉安装施工组织设计.doc
- 第9课《桃花源记》课件 统编版语文八年级下册.pptx
- 第8课伟大的历史转折(大单元教学课件)历史统编版新教材八年级下册.pptx
- 第17课《短文两篇——陋室铭》课件-2025-2026学年初中语文统编版七年级下册.pptx
- 第13课+机の上に本が3冊あります+课件+2025-2026学年新标准日语初级上册.pptx
- 第12课《_诗经_二首关雎》课件(共20张ppt)统编版语文八年级下册.pptx
- 第17课《壶口瀑布》课件+2025-2026学年统编版语文八年级下册.pptx
- 第22课《礼记二则》课件 2025-2026学年统编版语文八年级下册.pptx
- 第22课《〈礼记〉二则——大道之行也》课件 -统编版语文八年级下册.pptx
- 第22课《大道之行也》课件-统编版语文八年级下册.pptx
- 第12课+辽宋夏金元时期经济的繁荣(情境化教学课件)历史统编版新教材七年级下册.pptx
最近下载
- FINE发现好衣服淘宝店618促销方案.pdf VIP
- 2026年渤海船舶职业学院单招《数学》试题预测试卷及答案详解一套.docx VIP
- SpaceClaim中文版 官方(教程).doc
- 动力电池检测 .pdf VIP
- 肝硬化肝性脑病诊疗指南(2024年版)解读PPT课件.pptx VIP
- 唐能通新生300天连载(41-50).doc VIP
- 深静脉血栓形成的诊断和治疗指南(第三版).pptx VIP
- 社区矫正对象报到情况通知单社区矫正对象未报到通知书37课件.pptx VIP
- 常用国内外材料的标准及牌号对照教材.pdf VIP
- Focusrite福克斯特control2802 logic使用说明书.pdf
原创力文档

文档评论(0)