当真正释放STL中的内存时

丁格尔

STL的分配器使用内存池技术,并且仅将需要分配的内存添加到空闲列表中,如下所示:

static void deallocate(void* __p, size_t __n)
{
    if (__n > (size_t) _MAX_BYTES)
    malloc_alloc::deallocate(__p, __n);
    else {
        _Obj* __STL_VOLATILE*  __my_free_list = _S_free_list + _S_freelist_index(__n);
        _Obj* __q = (_Obj*)__p;
        __q -> _M_free_list_link = *__my_free_list;
        *__my_free_list = __q;
    }
}

我想知道,什么时候真正免费提供免费清单?

马丁·邦纳(Martin Bonner)支持莫妮卡(Monica)

不能保证STL使用内存池(尽管很常见)。

这将取决于实现方式(编译器,库,版本,操作系统,机器架构,月相)。一个常见的答案是,分配有new的内存只会在程序退出时返回到操作系统。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

释放内存时出错

来自分类Dev

释放R中的内存

来自分类Dev

释放GridView中的内存

来自分类Dev

释放C中的内存

来自分类Dev

当指针未知时,如何释放C中的内存?

来自分类Dev

启动新活动时,是否可以从活动中释放内存?

来自分类Dev

尝试访问C中释放的内存时没有警告

来自分类Dev

释放内存时程序冻结

来自分类Dev

表单关闭时释放内存

来自分类Dev

删除对象时内存未释放-在ARC中释放的正确方法不清楚

来自分类Dev

无法在C中释放内存

来自分类Dev

在perl脚本中释放内存

来自分类Dev

无法在C中释放内存

来自分类Dev

释放链表中节点的内存

来自分类Dev

为包含STL类的链表结构释放内存

来自分类Dev

释放内存时发生严重错误

来自分类Dev

活动进入堆栈时如何释放内存?

来自分类Dev

检测退出时释放的C内存“泄漏”

来自分类Dev

尝试释放内存时出现分段错误

来自分类Dev

释放内存时出现分段错误

来自分类Dev

离开堆栈时自动释放内存

来自分类Dev

释放链表时发生内存泄漏

来自分类Dev

类破坏时的内存损坏(双重释放)

来自分类Dev

从结构堆栈弹出时释放内存

来自分类Dev

迅速出现ViewDidDisapp时释放内存

来自分类Dev

Python 中真正占用内存的是什么?

来自分类Dev

当我在Swift中销毁我的对象时,它不会释放我的RAM内存

来自分类Dev

ASp.NET中的用户关闭浏览器时,Session是否释放可用内存?

来自分类Dev

在用户定义的类中清空std :: vector时未释放内存