参考网址:
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[]>());