如何通过指针 a (placement new) 释放内存?
How to free memory by pointer a (placement new)?
我无法理解如何通过指针 a 正确释放内存
MemoryManager mm;
char* a = new(mm) char[len];
您只需调用析构函数(如果需要)并使用您的内存管理器解除分配
// Deallocate memory
MemoryManager.free(a);
或者,您可以为自定义分配器定义删除运算符:
void operator delete(void *ptr, const MemoryManager &m) {...}
...
operator delete(a, mm);
我无法理解如何通过指针 a 正确释放内存
MemoryManager mm;
char* a = new(mm) char[len];
您只需调用析构函数(如果需要)并使用您的内存管理器解除分配
// Deallocate memory
MemoryManager.free(a);
或者,您可以为自定义分配器定义删除运算符:
void operator delete(void *ptr, const MemoryManager &m) {...}
...
operator delete(a, mm);