![]() |
1
32
我认为这是一个非常有趣的项目,你可以从中学到很多东西。这里有一些关于记忆管理的阅读材料。它介绍了内存管理的一些基础知识,引入了一个简单的malloc实现,然后涉及到一些更高级的主题。 另外,由于您提到要制作一个对调试有用的内存管理器,您可能需要考虑由memcheck/valgrind(一个非常好的Linux内存调试器)的开发人员阅读本文。它详细描述了它们如何跟踪memchck中的所有元数据(无论是否定义了特定的字节、初始化等)。它有点详细,但对于如何创建一个可扩展和高效的动态内存检查器来说,它是一个很好的读物。 |
![]() |
2
4
Dave Hanson C Interfaces and Implementations 首先介绍一个标准内存管理器,然后介绍一个具有一些调试功能的内存管理器。这将是学习和扩展的一个很好的起点。
当然,如果您真的想在运行的C或C++程序中诊断内存问题,应该使用
|
![]() |
3
2
|
![]() |
4
1
有一个用Delphi编写的伟大的开源内存管理器: fastMM4 . 看看它可能很有价值。它支持您想要实现的许多特性,因此可能是一个很好的展示。 |
![]() |
6
0
你可以用Malc和Field-实现大部分的——事实上,很多C++内存管理器都被实现了,即使它们不是必须的。 您可以从维护所有分配和解除分配日志的简单实现开始,但将常规分配/解除分配转发给malloc和free。显然,简单的实现也不应该使用new/delete… 所以,首先你可以
|
![]() |
7
0
我认为您可以从一个智能指针实现开始,它在后台使用基本的引用计数。这些是记忆管理的基础知识,会让你的脚湿透的。从那里,您可以使用您的实现来创建一个更高级的内存管理器。 |
![]() |
8
0
“电子围栏”是一个可能有帮助的基本起点。本质上,它有malloc和free的定制实现,提供调试。 然而,AFAIK,它不集成到C++的NeX/DELT运算符中,尽管提供定制的全局新的/Delphi实现也不算太大,可以推迟到电篱笆例程。
|
![]() |
9
-2
你的讲台是什么?想一想,在你去重新安装厨房水槽之前,Valgrind或Lint是否能帮助你? |
![]() |
TheKing · 为什么数组的地址可以有负值? 3 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |
![]() |
joe · 一页可以同时在两个工作集中吗? 7 年前 |
![]() |
Jaques · “.exe”已触发断点 7 年前 |
![]() |
adn bps · 在函数中修改变量的高效内存方法 7 年前 |
![]() |
Gauraang Khurana · C语言中分段错误的不稳定行为 7 年前 |
![]() |
Rajesh K · 如何查找设备中存在的广告垃圾? 7 年前 |