参考网址:
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[]>());
作者:
怪小子
Github:
https://github.com/MrSunHua
邮箱:sh4a01@163.com
本文版权归作者和博客园共有,欢迎转载,如文章有版权冲突或者有更好的见解及建议,还望联系博主讨论并修改。
浙公网安备 33010602011771号