delete[] はどのようにしてオペランド配列のサイズを「知る」のでしょうか? 質問する

delete[] はどのようにしてオペランド配列のサイズを「知る」のでしょうか? 質問する
Foo* set = new Foo[100];
// ...
delete [] set;

配列の境界を に渡しませんdelete[]。しかし、その情報はどこに保存されますか? 標準化されていますか?

ベストアンサー1

ヒープ上にメモリを割り当てると、アロケータは割り当てられたメモリの量を追跡します。これは通常、割り当てられたメモリの直前の「ヘッド」セグメントに保存されます。こうすることで、メモリを解放するときに、アロケータは解放するメモリの量を正確に把握できます。

おすすめ記事