参考网址:

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<int> ac2(new int[10], std::default_delete<int[]>());
posted on 2020-11-05 02:12  怪小子  阅读(665)  评论(0)    收藏  举报