从Boost版本1.53开始,shared_ptr可用于保存 指向动态分配的数组的指针。 (http://www.boost.org/doc/libs/1_55_0/libs/smart_ptr/shared_ptr.htm)
此外,使用shared_ptr还具有分配器功能,例如boost :: make_shared< int []>(...);
我应该尽可能开始使用boost :: shared_ptr而不是boost :: shared_array吗?似乎boost :: shared_ptr可以完成大部分工作boost :: shared_array。
答案 0 :(得分:1)
如果代码正确且有效,我不会更改主题。
如果我有空闲时间并希望做出改变,我会立即转移到std::shared_ptr<T[]>
。
答案 1 :(得分:0)
是的,使用shared_ptr的一个重要好处是您不再需要显式释放内存。 shared_ptr是一个智能指针,因此可以自己解除内存,从而避免任何内存泄漏。此外,还有类似的问题,请访问链接Why use one vs the other: `boost::shared_array` VS `boost::shared_ptr<std::vector>`?