256 バイトのメモリ ブロックのみを割り当てたいとします。
char * memory = new char[256];
FooBar オブジェクトを作成するために新しい配置を使用するよりも (sizeof(Foobar)<=256)
FooBar * obj = new (memory) FooBar();
する
delete obj; //this also calls the destructor of FooBar
256 バイトのメモリをすべて削除しますか?
標準では、「obj を削除する」だけで「メモリ」バッファ全体の割り当てが解除されることが保証されていますか? または、タイプ「FooBar」に基づいているため、この操作の動作は未定義ですか?
仮定: FooBar はメモリ バッファー内の唯一のオブジェクトです。
これは重複した質問ではありません。まず質問を理解してください。このコードが何をするかはすぐにはわかりません。