stl之分配器allocators

先谈operator new()和malloc()

c++分配内存动作最终都会跑到malloc上,所以operator new里也是调用malloc
那malloc分配内存什么样子呢?如下图所示
stl之分配器allocators
蓝色块是实际大小,上下2个红色是cookie,作分界用,整个内存大小会调整到某个边界,所以有绿色的(没有实际内容),灰色的是在debug的时候有的。
所以malloc分配的内存比实际需要的多

vc6 stl对allocator的使用

stl之分配器allocators
分配器最重要的两个函数:allocate、deallocate
在vc下allocate会调用到operator new即malloc,deallocate会调用到operator delete即free
所以在vc6里的allocator没有任何设计

G2.9 的 alloc(会在内存管理详解)

stl之分配器allocators
因为容器的大小是固定的,所以可以去除malloc多余分配的内存(例如cookie),该有16个链表,第一个链表负责8字节的内存分配,后面链表依次加8字节。

原文链接: https://www.cnblogs.com/acwarming/p/17148448.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    stl之分配器allocators

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/319932

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月24日 下午3:31
下一篇 2023年2月24日 下午3:31

相关推荐