我尝试在列表中使用boost :: fast_pool_allocator来管理内存分配。 这是我的示例代码,
boost::fast_pool_allocator<int> alloc;
std::list<int, boost::fast_pool_allocator<int>> data_pool(alloc);
data_pool.push_back(1);
data_pool.push_back(2);
data_pool.clear();
boost::singleton_pool<boost::fast_pool_allocator_tag, sizeof(int)>::purge_memory();
但是purge_memory永远不会释放内存。我用Google搜索并看到有人提到sizeof(int)的列表节点大小不正确。
但是如何才能获得正确的列表节点大小以使purge_memory有效?
答案 0 :(得分:1)
调用singleton_pool::release_memory()
会释放已分配的池。