【C++內存管理】7_VC六、BC五、G2.9 的標準分配器實現

VC6 下的malloc 內存塊佈局

image.png

對應圖中自上而下的內存消耗:
malloc(0x0c) ==>

4 + (4 * 8) + 0x0C + 4 + (2 * 4) + 4 = 0x40

VC6 標準分配器的實現

VC6 的 allocator 只是以 ::operator new 和 ::operator delete 完成 allocate() 和 deallocate(), 沒有任何特殊設計
VC6 所附的標準庫,其 std::allocator 實現以下(<xmemory>)

image.png

BC5 標準分配器的實現

BC5 的 allocator 只是以 ::operator new 和 ::operator delete 完成 allocate() 和 deallocate(), 沒有任何特殊設計佈局

BC5 所附的標準庫,其 std::allocator 實現以下(memory.stl)spa

image.png

G2.9 標準分配器的實現

G2.9 的 allocator 只是以 ::operator new 和 ::operator delete 完成 allocate() 和 deallocate(), 沒有任何特殊設計
G2.9 所附的標準庫,其 std::allocator 實現以下(<defalloc.h>)

image.png

(不要使用這個文件,除非您有一箇舊的容器實現,須要一個帶有hp風格接口的分配器。SGI STL使用不一樣的分配器接口。sgi風格的分配器沒有對象類型的參數化,它們在void*指針中傳輸。這個文件不包括在其餘SGI STL頭文件中)設計

相關文章
相關標籤/搜索