如何正确清除内存?
How to clear the memory correctly?
我有一些代码:
MemoryManager mm;
char *a = new (mm) char [len +1];
如何通过指针a释放所有内存?
首先,任何内置程序都无法知道如何删除您的 a
数据 - 您是为它分配新位置的人,因此清理它是您的工作。
不幸的是,似乎没有为此重载 delete
的方法。只需使用您选择的方法名称:
MemoryManager mm;
char *a = new (mm) char [len +1];
mm.cleanup(a); // since mm allocated us the memory, only it knows how to destroy it.
// Note that this also needs to do obj.~ClassName() for class types
请参阅 isocpp 常见问题解答中的 'is there a placement delete'。
我有一些代码:
MemoryManager mm;
char *a = new (mm) char [len +1];
如何通过指针a释放所有内存?
首先,任何内置程序都无法知道如何删除您的 a
数据 - 您是为它分配新位置的人,因此清理它是您的工作。
不幸的是,似乎没有为此重载 delete
的方法。只需使用您选择的方法名称:
MemoryManager mm;
char *a = new (mm) char [len +1];
mm.cleanup(a); // since mm allocated us the memory, only it knows how to destroy it.
// Note that this also needs to do obj.~ClassName() for class types
请参阅 isocpp 常见问题解答中的 'is there a placement delete'。