社区
C++ 语言
帖子详情
关于《stl源码剖析》一书内存分配器中内存释放问题
KingI
2005-12-13 07:21:12
我想问一下在stl中的内存分配器使用二级分配器中分配内存,如果小于等于128k就会通过内存池来申请(内存池也是通过malloc()来获得内存的),可是当程序结束时,并没有释放内存池中内存的代码,(>128k调用free()), 难道这是内存泄露不成?
...全文
248
6
打赏
收藏
关于《stl源码剖析》一书内存分配器中内存释放问题
我想问一下在stl中的内存分配器使用二级分配器中分配内存,如果小于等于128k就会通过内存池来申请(内存池也是通过malloc()来获得内存的),可是当程序结束时,并没有释放内存池中内存的代码,(>128k调用free()), 难道这是内存泄露不成?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xlsue
2005-12-14
打赏
举报
回复
没注意看楼主的问题,温柔已经copy上来了,同意“温柔”这个指针。。。
睡在床板下_
2005-12-14
打赏
举报
回复
我也正在看这本书, 你那个问题,我也没仔细 研究过,我只是 把 它的 适配器 大概看 懂了,你说的 这个二级分配器 太难懂了,我只看了一级的,感觉就是sgi stl 包装的太好了,果然是 一流程序员写的东西,呵呵~~ 看的 实在是很爽, 想和你交流 不只有兴趣否??
qq: 86122114
xlsue
2005-12-13
打赏
举报
回复
《STL源码剖析》是一本很棒的书。读的时候要把很东西东西结合在一起,C++的很多技术、技巧都有应用。也是提高自己模板功力的一个不错的机会。要多思考,多实践。。。
xlsue
2005-12-13
打赏
举报
回复
你先看看《effective c++》的对memory pool那节有关描述。
SGI STL的memory pool很有意思。它freelist数组,每个元素管理一个大小的链表,如果要分配一个X大小的内存,它会先做个小小的调整,然后再在freelist中查找管理那个大小的数组元素,而数组元素存贮着它所管理的一块块大小组成的链表的头指针。如果有,则调整链表,返回那个内存的指针,否则查看其它块有没有内存。。。如果释放内存,它会加到维护那个大小的链表中。。。
总之,它的实现很有意思。我也是大概看了一下,还没有更深入看它的全面代码。
Jinhao
2005-12-13
打赏
举报
回复
那块内存由内存池管理,不释放可以提升小块内存分配的效率
foochow
2005-12-13
打赏
举报
回复
引起内存泄露的原因在于内存分配后指向内存的指针丢失了.如果没有垃圾处理或其他语言之外的机制,这些内存就不会被收回.但上面的设计没有内存泄露,因为它决不会出现内存指针丢失的情况.内存泄漏和内存池有一个重要的不同之处.内存泄漏会无限地增长,即使客户循规蹈矩,而内存池的大小决不会超过客户请求内存的最大值.
STL
源码
剖析
终稿621
一.简介11.GNU 源代码开放精神14.
STL
六大部件 2二.空间分配器31.空间分配器的标准接口 33.1 对象构造与析构 43.2
内存
分配
与
释放
43
传智播客扫地僧视频讲义
源码
13_动态库
内存
释放
问题
源码
及文档 01_上一次课程回顾 02_链表热身_结构体中套元素和指针 03_结构体数据类型的嵌套定义和函数的嵌套调用是两个不同的概念 04_静态链表及局限性 05_链表的分类和链表的辅助指针变量 06...
C++
STL
STL
实战开发精讲视频
STL
是一个高效的C++程序库,它被容纳于C++标准程序库(C++ Standard Library)中,该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件...
STL
源码
剖析
-分配器 Allocator
STL
源码
剖析
-分配器 Allocator
STL
源码
剖析
--
内存
分配
器
SGI
STL
的
内存
分配
器
内存
分配
器是
STL
中非常重要的一个概念,
STL
的各种容器都会使用
内存
分配
器来对
内存
进行管理,SGI
STL
提供了两种
内存
分配
器,一个叫__malloc_alloc_template一个叫__default_alloc_template,他们两...
C++ 语言
64,648
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章