首页 > 编程语言 > 详细

shared_ptr 指针释放数组

时间:2021-01-25 18:56:23      阅读:29      评论:0      收藏:0      [点我收藏+]
我们都知道,智能指针可以自己释放内存,不用我们手动释放。

但是智能指针的默认释放规则是不支持释放数组的,这时,需要我们再稍加操作,就可以完美释放,现总结两个解决方法:

方法一:使用C++11提供的模板类 default_delete


std::shared_ptr<int>ptr(new int[10],std::default_delete<int[]>());

方法二:自定义释放规则

std::shared_ptr<int>ptr(new int[10],myDelete);
void myDelete(int* p)
{
    delete []p;
}

//也可以用lambda表达式一行写完,是一样的效果
std::shared_ptr<int>ptr(new int[10],[](int* p){delete []p;});

shared_ptr 指针释放数组

原文:https://blog.51cto.com/15051869/2605766

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!