0

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

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

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

但是在 VS2008 中运行它后,我检测到内存泄漏。我不知道为什么。

如果我更改boost::shared_ptrMemoryChunks,内存泄漏就会消失。

4

1 回答 1

0

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

于 2011-09-21T05:32:18.733 回答