当前位置: 首页 > 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.dtcms.com/a/427509.html

相关文章:

  • 数学-绝对值(二)
  • css三角形源码
  • 行业网站名录温州网站 公司
  • 资阳网站建设方案wordpress api 发贴
  • 做个网站要多久柚段子wordpress主题模板
  • 网站开发需要学什么语言腾讯广告代理商
  • 【完整源码+数据集+部署教程】鹿角图像分割系统: yolov8-seg-C2f-DCNV2-Dynamic
  • 人工智能发展史 — 物理学诺奖之 Hinton 玻尔兹曼机模型
  • Spring 框架中 ​​RestTemplate 的使用方法​​
  • Vue3中基于路由的动态递归菜单组件实现
  • 建设主题网站的顺序一般是网站规划的案例
  • 免费网站建设制作上海网络推广报价
  • 手撕JS实现call,apply,bind
  • 【Java学习】类加载与实例化过程
  • [xboard] 19 kernel Makefile逐行分析1
  • 《足垒球百科》什么是足球、垒球、足垒球·垒球1号位
  • Process Monitor 学习笔记(5.1):Procmon 概述、抓取原理与常见用途
  • 重塑自然之美:朱小颜健康科技有限公司,开启非侵入式面部美学新时代
  • 站长工具关键词排名怎么查淘宝刷单网站制作
  • 做一个网站的详细教学建设通是正规网站吗
  • Redis Set 类型全解析
  • OpenSSH6 双库链接问题排查与解决总结
  • PyTorch实战车牌识别 小张的停车场项目逆袭之旅
  • IDEA 2025.2正式发布,AI能力有重大更新
  • 【Nginx开荒攻略】静态文件服务深度解析:MIME类型映射与优化实战
  • 郑州社交网站开发网推项目
  • 专做品牌网站手机微网站 模板
  • MQTT Dashboard 访问控制
  • 微算法科技(NASDAQ MLGO)研究基于信任场模型的异构物联网区块链分片算法,提高区块链的可扩展性
  • 数据结构13003考前急救