【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头文件中)设计

相关文章
相关标签/搜索