如何通过指针 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);