关于c++:C内存管理7VC6BC5G29-的标准分配器实现

VC6 下的malloc 内存块布局

对应图中自上而下的内存耗费:

malloc(0x0c) ==>

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

VC6 规范分配器的实现

VC6 的 allocator 只是以 ::operator new 和 ::operator delete 实现 allocate() 和 deallocate(), 没有任何非凡设计

VC6 所附的规范库,其 std::allocator 实现如下(<xmemory>)

BC5 规范分配器的实现

BC5 的 allocator 只是以 ::operator new 和 ::operator delete 实现 allocate() 和 deallocate(), 没有任何非凡设计

BC5 所附的规范库,其 std::allocator 实现如下(memory.stl)

G2.9 规范分配器的实现

G2.9 的 allocator 只是以 ::operator new 和 ::operator delete 实现 allocate() 和 deallocate(), 没有任何非凡设计

G2.9 所附的规范库,其 std::allocator 实现如下(<defalloc.h>)

(不要应用这个文件,除非您有一个旧的容器实现,须要一个带有hp格调接口的分配器。SGI STL应用不同的分配器接口。sgi格调的分配器没有对象类型的参数化,它们在void*指针中传输。这个文件不包含在其余SGI STL头文件中)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理