当前位置: 首页 > news >正文

外贸服装网站建设霸屏推广

外贸服装网站建设,霸屏推广,海南省城乡住房建设厅网站,苏州大写的网站建设《C 智能指针&#xff1a;长达数十年的血泪史&#xff0c;一步步征服内存泄漏》-CSDN博客 shared_ptr<int> sp1(new int(10)); 这句代码实际存在两个内存开辟&#xff0c;一是开辟我们要托管的内存资源 &#xff0c;二是开辟引用计数的资源&#xff0c;引用技术也是new出…

《C++ 智能指针:长达数十年的血泪史,一步步征服内存泄漏》-CSDN博客

	shared_ptr<int> sp1(new int(10));

这句代码实际存在两个内存开辟,一是开辟我们要托管的内存资源 ,二是开辟引用计数的资源,引用技术也是new出来的。它们两个是单独new出来的,在不同的内存空间。

如果new int(10)成功了,new引用计数没有成功,那么就意味着shared_ptr对象创建失败了!就不会调用析构函数再释放资源了。所以就会导致资源泄漏,存在这个风险。

	shared_ptr<int> sp2 = make_shared<int>(10);// auto sp2 = make_shared<int>(10);

把我们需要托管的内存资源和存储引用计数的内存资源一起开辟了,在一块内存上,去new一次!所以,要么都开辟成功,要么都开辟失败,如果失败了,由于不存在资源的开辟即不存在资源的泄漏。

优点:

  • 内存分配效率高
  • 防止资源泄漏的风险

缺点:

  • 无法自定义删除器
  • 导致托管的资源延迟释放

理解shared_ptr托管资源延迟释放的问题

  • 如果为shared_ptr

当最后一个使用资源的shared_ptr对象要析构时,强智能指针引用计数uses--为0,就会立即将资源释放,即使此时弱智能指针weaks不为0还在观察。因为托管的资源和存储引用计数的资源不在同一块内存。

  • 如果为make_shared

当强智能指针引用计数--为0要释放资源时,如果此时weaks不为0,那么就不能将资源释放,因为它们是同一块内存开辟出来的,即现在没有shared_ptr指向资源了,资源也无法释放。只有当weaks也为0时,才能将资源释放。

使用C++14make_shared代替shared_ptr,使用C++14make_unique代替unique_str。

http://www.cadmedia.cn/news/13969.html

相关文章:

  • 重庆网站建设公司魁网怎么去做网络推广
  • 搜索引擎营销的优势百度竞价是seo还是sem
  • 海口网站建设电话搜索引擎网址
  • 免费源码资源源码站在线汽车品牌推广策划方案
  • 插画网站网络代运营推广
  • 手机建设中网站网址推广
  • 媒体平台是什么seo怎么发布外链
  • 国美的网站做的怎么样网络营销的特点有哪些?
  • 网站建设html5行业关键词词库
  • 搬瓦工做网站方法软件培训班
  • 外贸网站关键词营销策划案的模板
  • 天津网站吗乐陵seo外包公司
  • 个人域名做邮箱网站如何在百度做免费推广产品
  • 招标代理公司注册搜索引擎优化策略不包括
  • 邯郸做wap网站找谁电脑优化设置
  • 桓台网站制作企业网站页面设计
  • 广西网站建设方案足球世界排名国家
  • 山东大良网站建设传统营销和网络营销的区别
  • 设建网站日本网络ip地址域名
  • 店面设计薪酬seo页面优化公司
  • 网站建网站建设企业条友网
  • 全球设计网网址厦门seo搜索排名
  • 网站推广的基本方法为()2023年免费b站推广大全
  • 温州做高端网站公司排名电商代运营
  • 公司注册网站诈骗莫名被起诉关键词排名软件
  • 好的手机网站推荐河南企业站seo
  • 移动互联网站建设宁波seo专员
  • 国外扁平化设计网站长尾关键词是什么
  • wordpress对接七牛云seo入门课程
  • 楼市房价最新消息谷歌seo是什么