【发布时间】:2015-02-21 09:08:01
【问题描述】:
前段时间,我看到一篇关于全局覆盖 new 和 delete 运算符的问题的帖子。 Post 说它可能会导致 STL 和许多其他库出现问题。
现在我正在编写一个内存管理器。我正在考虑覆盖 global new 和 delete 运算符以优化整个应用程序。在自定义内存管理器中,使用了相同的旧的 new 和 delete 运算符(在运行时根据需要分配大块内存,同时分配其中的一部分以供在我的软件中实际使用)。
- 这种方法有什么问题吗?我希望在我的应用程序中使用许多库,例如 DirectX、STL 和 Boost。
- 我在第一段提到的那些谣言是真的吗?
我正在使用 VS2010
-- 编辑--
我应该在 MemoryManager 仪式中使用 malloc() 和 free()。
【问题讨论】:
-
另一种覆盖部分内存分配子系统的方法是编写一个分配器,提供给所有容器。
-
你应该考虑阅读这个答案:stackoverflow.com/a/22039345/1413395
标签: c++ visual-c++ memory-management stl new-operator