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

自己建公司网站可以嘛深企在线

自己建公司网站可以嘛,深企在线,免费咨询法律电话,广州菜谱制作公司《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.dtcms.com/wzjs/92397.html

相关文章:

  • 如何在mac系统安装wordpress百度关键词排名优化
  • 商务网站开发与建设危机公关处理方案
  • 答题app怎么制作玉林网站seo
  • 网站的主要功能槐荫区网络营销seo
  • 北京市政府网站建设规范域名批量查询工具
  • 广州开发区第二小学北校区win7怎么优化最流畅
  • 摄影网站的实验设计方案排名app
  • 怎么在网站后面做链接百度官方客服
  • esp8266做网站网络营销服务有哪些
  • 深圳企业网站制作中心网站排名软件优化
  • 铁岭做网站信息济南优化哪家好
  • 用easyui做的网站如何自己免费制作网站
  • 人人车网站建设费用德阳seo优化
  • 做外语网站近期发生的重大新闻
  • 基础网站建设公司班级优化大师下载安装app
  • 做产品设计之前怎么查资料国外网站中小企业网站制作
  • 什么学习网站建设网络公司关键词排名
  • b2b网站seo怎么做收录国际新闻最新消息十条摘抄
  • 重庆网站建设设计公司信息semi final
  • cod建站系统seo搜索引擎优化的内容
  • ppt模板免费下载 素材红色主题搜索引擎优化岗位
  • 好的排版设计网站广告接单平台有哪些
  • 烟台网站建设联系电话seo内部优化包括哪些内容
  • 网站编写流程seo搜索优化邵阳
  • 珠海网络营销推广广州seo代理
  • 做自己照片视频网站西安自助建站
  • 大连网站设计菲尔莱斯百度指数的使用方法
  • 网站访问 测试上海百度推广官方电话
  • 重庆市建设工程造价管理站seo怎么刷排名
  • 做百度推广网站得多少钱推广网站免费