我写了我的malloc
实现(让它叫mymalloc(size_t)
)收集附加信息并保存到列表中。现在我需要重载operator new
以使其与mymalloc(size_t)
一起使用,而不是malloc(size_t)
。在VS2010,我发现这个实现的operator new
:如何用自定义malloc重载“operator new”以使其调用构造函数?
void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc)
{ // try to allocate size bytes
void *p;
while ((p = malloc(size)) == 0)
if (_callnewh(size) == 0)
{ // report no memory
static const std::bad_alloc nomem;
_RAISE(nomem);
}
return (p);
}
见:有这个代码不placement new
!那么我的问题是:如何重载operator new
与mymalloc
作为内存分配函数使其调用构造函数?
谢谢。我以为我知道C++ ... – Netherwire