我们都知道,智能指针可以自己释放内存,不用我们手动释放。

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

方法一:使用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;});
©著作权归作者所有:来自51CTO博客作者ALLIN君的原创作品,如需转载,请注明出处,否则将追究法律责任

每一份赞赏源于懂得

赞赏

0人进行了赞赏支持

更多相关文章

  1. Android开发 如何最优的在Activity里释放资源
  2. 【Android休眠】之休眠锁的获取和释放
  3. Android(安卓)内存泄漏 - Animator的使用与释放
  4. Android(安卓)finish()自动回调时机,Activity资源释放逻辑放在onD
  5. Android(安卓)释放资源和进程的优先级顺序
  6. Android释放内存
  7. Android释放内存(结束进程)
  8. android中Bitmap数据如何释放
  9. Android下Activity结束(finish())之后没有释放内存问题的解决方法

随机推荐

  1. 【面试】Android Retrofit+Rxjava 如何实
  2. Android TextView 字体加粗
  3. 添加ddHeaderView注意问题
  4. 修改android studio 默认的so文件检索路
  5. Android(安卓)蓝牙开发(九)A2DP基本功能
  6. android build.prop详解
  7. android避免service被杀 博客分类: androi
  8. eclipse 启动 Android SDK Content Loade
  9. Android之两种toast的实现
  10. Android adb 使用总结 (调试专用)