假设我只想分配 256 字节的内存块
char * memory = new char[256];
比我使用placement new 创建一个FooBar 对象(sizeof(Foobar)<=256)
FooBar * obj = new (memory) FooBar();
做
delete obj; //this also calls the destructor of FooBar
删除所有 256 字节的内存?
标准是否保证仅通过“删除 obj”来释放整个“内存”缓冲区?或者它基于“FooBar”类型,因此该操作具有未定义的行为?
假设: FooBar 是内存缓冲区中的唯一对象。
这不是重复的问题,请先了解问题。这段代码的作用还不是很明显。