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

c++ delete实现动作

new申请的资源需要delete释放

delete动作:1.清除指向的地址(操作系统标记为可用内存,不一定清除内存中的数值);2.不会将指向该内存的指针设置为nullptr空指针,对应指针会变成悬空指针,直接使用会出现未知行为。

行为delete 会做吗?说明
清除内存中的数据✅ 是(释放堆内存)OS 可能标记为“可分配”,但内容未必清零
将指针设为 nullptr❌ 否指针变量仍然保存原地址,必须手动设置
更新其他指针的状态❌ 否不会修改其他指向同一内存的指针
取消“指向关系”❌ 否指针只是一个变量,delete 不会改动指针本身

总结:delete释放资源之后需要将手动将对应指针设置为空指针

特性空指针 (nullptr)悬空指针
是否指向有效内存?❌ 不指向❌ 不再指向有效内存
是否可检测?✅ 可以用 p == nullptr 判断❌ 表面上看不出问题
是否安全?✅ 只要不解引用❌ 非常危险
是否可以避免?✅ 初始化时设为 nullptr✅ delete 后设为 nullptr
解引用后果❌ 崩溃(立即可见)❌ 未定义行为(可能延迟爆炸)
http://www.xdnf.cn/news/10579.html

相关文章:

  • Netty学习example示例
  • RAG的ETL Pipeline源码解读
  • 科技类专著写作与出版过程
  • 【java面试】MySQL篇
  • Python Day40 学习(复习学习日志Day5-7)
  • make_unique
  • 基于LangChain的AI助手开发:从零到上线
  • 案例:TASK OA
  • Pycharm的终端无法使用Anaconda命令行问题详细解决教程
  • 兰亭妙微十六年高水准交互设计公司
  • php 各版本下载
  • 探索大语言模型(LLM):RSE流程详解——从文档中精准识别高相关片段
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Form Wave(表单label波动效果)
  • 力扣刷题(第四十五天)
  • navicate菜单栏不见了怎么办
  • cursor如何开启自动运行模式
  • PH热榜 | 2025-05-31
  • Docker常用命令详解与高效记忆指南
  • Android Studio历史版本下载地址汇总
  • 【软件测试】web自动化:Pycharm+Selenium+Firefox(一)
  • 【动画】unity中实现骨骼蒙皮动画
  • 使用FastAPI构建车牌检测识别服务
  • 「Python教案」字符串格式化操作
  • hooks组件-useState
  • 散列表(哈希表)
  • 函数调用的机器级实现(二):栈帧的访问与切换机制
  • 【笔记】为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境)
  • 用wireshark抓包分析学习USB协议
  • 浅写弱口令与命令爆破
  • Cursor 编辑器介绍:专为程序员打造的 AI 编程 IDE