C / C ++自定义分配器内存泄漏

时间:2011-09-21 05:22:56

标签: c++ stl containers shared-ptr allocator

我创建了一个自定义内存分配器,如下所示:

class pool_allocator
{
    // required methods
    // ...
private:
    boost::shared_ptr<MemoryChunks> m_t;
};

这个分配器的目的是共享由不同容器分配的内存,并且只在所有容器和删除时释放它们。因此,我使用boost::shared_ptr

然而,在VS2008中运行后,我发现内存泄漏。我不知道为什么。

如果我将boost::shared_ptr更改为MemoryChunks,内存泄漏就会消失。

1 个答案:

答案 0 :(得分:0)

您是否知道在C ++ 03中分配器被视为无状态?尝试将你的分配器与Boost.Containers结合使用(它刚被接受,但我认为它们已经是Boost.Interprocess的一部分),它尊重分配器。如果没有MemoryChunks的定义,就不容易说出其他任何内容。