【发布时间】:2011-11-19 12:52:14
【问题描述】:
我正在重载 new 和 delete 以实现我自己的小对象/线程安全分配器。
问题是当我重载new 时,我不能在不破坏普遍因果关系或至少在编译器的情况下使用new。我发现new 过载的大多数示例都使用Malloc() 进行实际分配。但根据我对 C++ 的理解,Malloc() 根本没有用例。
与此类似的多个答案,其中一些在 SO 之外的侵权行为较少:In what cases do I use malloc vs new?
我的问题是,在不使用Malloc() 的情况下重载运算符new 时如何分配实际内存?
(这主要是出于好奇,尽量不要太认真地看待过载背后的原因;我对此有一个单独的问题!)
【问题讨论】:
-
听起来是个很难回答的问题,因为如果不直接调用
new或malloc(),我想不出任何其他方式在C++ 中分配内存?我是不是误会了什么? -
@Mysticial - 我不这么认为!我想我们都会尽快找出是否有办法。 :P
-
当然我忘记了操作系统特定的内存分配器...... :)
-
new vs malloc问题没有考虑“重载new”的情况。malloc()的最大问题 - 不调用 ctors - 在这里无关紧要。
标签: c++ memory-management malloc