3

考虑以下代码:

char mem[sizeof(char)];
void* p = mem;
f = new(p) char;

既然变量 mem 的内存应该是在栈上的,那为什么这块内存最后没有被自动回收呢。

4

1 回答 1

9

内存是自动收集的。

但是不会自动调用析构函数。当您使用 Placementnew时,您应该将其与手动析构函数调用配对。当然char,这并不重要,因为析构函数是微不足道的。

于 2012-01-17T20:19:54.520 回答