社区
C++ 语言
帖子详情
内存池的实现,求助
mervynhit
2011-08-25 09:11:57
最近在想内存池的问题,有些问题不懂,想问一下。
比如一个内存池只分配一个类的内存,所以我们知道一个对象的内存大小,用内存池我们可以一次分配多个对象的内存。
用这个内存池释放一个对象内存的时候,是不是这个对象没有被删除,而只是把这个对象初始化,并且记录这个对象的指针,把它放到废弃内存的数组里面去。而用内存池分配内存的时候是从废弃内存中找到一个指针返回,而这个指针指向的是废弃的已被初始化的对象?
...全文
154
6
打赏
收藏
内存池的实现,求助
最近在想内存池的问题,有些问题不懂,想问一下。 比如一个内存池只分配一个类的内存,所以我们知道一个对象的内存大小,用内存池我们可以一次分配多个对象的内存。 用这个内存池释放一个对象内存的时候,是不是这个对象没有被删除,而只是把这个对象初始化,并且记录这个对象的指针,把它放到废弃内存的数组里面去。而用内存池分配内存的时候是从废弃内存中找到一个指针返回,而这个指针指向的是废弃的已被初始化的对象?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
turing-complete
2011-08-26
打赏
举报
回复
学习池的思想,应该能提高很多效率
alexmayer
2011-08-26
打赏
举报
回复
Mark党到此一游!
luciferisnotsatan
2011-08-25
打赏
举报
回复
[Quote=引用 3 楼 freezezdj 的回复:]
STL 源码剖析
里有一个内存池,楼主可以好好看,剖析的很到位。
再 Google 侯捷 《池内春秋》。
[/Quote]
++
冻结
2011-08-25
打赏
举报
回复
STL 源码剖析
里有一个内存池,楼主可以好好看,剖析的很到位。
再 Google 侯捷 《池内春秋》。
mervynhit
2011-08-25
打赏
举报
回复
原来是这样~~~
xubin_sh
2011-08-25
打赏
举报
回复
不是,内存分配释放和对象构造析构不是一个事情
你可以google一下“replacement new”
他可以在一个已有的内存块上调用构造函数
// 申请内存
void * p = malloc(...);
// 构造对象
A *a = new(p)A(...);
// 析构对象
a->~A();
// 释放内存
free(p);
另外,boost::pool有内存池的实现,你可以参考一下
深入解析Oracle.DBA入门进阶与诊断案例
针对数据库的启动和关闭、控制文件...10.6.1 第一封
求助
邮件 520 10.6.2 第一次回复 523 10.6.3 进一步信息提供 523 10.6.4 进一步的诊断 524 10.6.5 最后的问题定位 525 10.6.6 小结 525 10.7 总结 525
二十三种设计模式【PDF版】
很简单一个模式,就是在内存中保留原来数据的拷贝. 设计模式之 Interpreter(解释器) 主要用来对语言的分析,应用机会不多. 设计模式之 Visitor(访问者) 访问者在进行访问时,完成一系列实质性操作,而且还可以扩展. ...
内存池
总结
为什么要
内存池
? (1) 在调试阶段检查内存泄露。C++的指针给大家带来了很大的方便,但是它对内存的自由操作也带来了内存泄露等一系列问题,在一些嵌入式软件开发过程中 (2) 减少内存碎片。频繁的从堆中...
STL初探——__default_alloc_template
内存池
如果
内存池
内存充足,则直接拿出足够的内存块给自由链表,如果内存不够所有需求但是对一小块需求能满足,则拿出一小块内存给自由链表并返回,如果一点儿内存也没有,则进行遍历压榨,最终如果真的没有,就只能
求助
于...
C++重载new,以及
实现
检测内存泄露版本的new
在 Effective C++这本书中,专门提到了这方面的知识,看过此书,做一些总结,顺便在网上找到一些内容,
实现
一个可以检测内存泄露的内存分配机制(new delete)。 1. new_handler 在铺叙重载new之前,先说一下...
C++ 语言
64,650
社区成员
250,478
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章