【发布时间】:2017-04-28 17:57:30
【问题描述】:
我不明白如何通过指针 a 正确释放内存
MemoryManager mm;
char* a = new(mm) char[len];
【问题讨论】:
标签: c++ delete-operator placement-new
我不明白如何通过指针 a 正确释放内存
MemoryManager mm;
char* a = new(mm) char[len];
【问题讨论】:
标签: c++ delete-operator placement-new
您只需调用析构函数(如果需要)并使用内存管理器解除分配
// Deallocate memory
MemoryManager.free(a);
或者,您可以为自定义分配器定义删除运算符:
void operator delete(void *ptr, const MemoryManager &m) {...}
...
operator delete(a, mm);
【讨论】: