参考网址:

https://www.cnblogs.com/darkknightzh/p/5462363.html

默认情况下,std::shared_ptr会调用delete来清空内存。当使用new[] 分配内存时,需要调用delete[] 来释放内存,否则会有内存泄露。
但是在 C++11 中 std::default_delete可以解决这个问题。

// unique 申请数组内存
std::unique_ptr<int[], std::default_delete<int[]>> ac1 = std::make_unique<int[]>(10);

// std::shared_ptr 申请数组内存
std::shared_ptr ac2(new int[10], std::default_delete<int[]>());

posted on 2020-11-05 02:12  怪小子  阅读(689)  评论(0)    收藏  举报