Foo* set = new Foo[100];
// ...
delete [] set;
配列の境界を に渡しませんdelete[]
。しかし、その情報はどこに保存されますか? 標準化されていますか?
ベストアンサー1
ヒープ上にメモリを割り当てると、アロケータは割り当てられたメモリの量を追跡します。これは通常、割り当てられたメモリの直前の「ヘッド」セグメントに保存されます。こうすることで、メモリを解放するときに、アロケータは解放するメモリの量を正確に把握できます。
Foo* set = new Foo[100];
// ...
delete [] set;
配列の境界を に渡しませんdelete[]
。しかし、その情報はどこに保存されますか? 標準化されていますか?
ヒープ上にメモリを割り当てると、アロケータは割り当てられたメモリの量を追跡します。これは通常、割り当てられたメモリの直前の「ヘッド」セグメントに保存されます。こうすることで、メモリを解放するときに、アロケータは解放するメモリの量を正確に把握できます。