在内存管理中调用的有效构造函数

时间:2011-06-13 18:36:59

标签: c++ memory memory-management malloc new-operator

我编写了自己的内存库,可以帮助我避免内存泄漏并避免碎片问题。一切正常。主要问题是它不适用于类。当我调用my_alloc(大小)时,我想自动调用构造函数(如果存在)。我可以在不重载新运算符的情况下完成吗?

2 个答案:

答案 0 :(得分:2)

您可以在已分配的内存中使用 placement new ,以便在不让new进行分配的情况下调用构造函数。

重载new有什么问题?

答案 1 :(得分:1)

检查您的C ++实现。其中一些(我认为G ++编译器这样做)调用C运行时malloc来获取new的内存,然后调用构造函数。

如果您有其中一个实现,那么您需要做的就是正确覆盖标准库malloc和free函数(阅读库内部文档),C ++将自动运行。