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

C++ 释放指针

在C++中,释放指针通常使用delete或delete[]操作符;
如果指针指向的是单个对象,可以使用delete操作符进行释放;
在释放完内存后,最好将指针置为nullptr,以避免出现悬空指针(dangling pointer)问题;

void CShifangView::OnDraw(CDC* pDC)
{CShifangDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;int* ptr = new int; // 动态分配一个整型对象*ptr = 9999;str1.Format("0X%x", ptr);pDC->TextOut(20, 20, str1);delete ptr;str1.Format("0X%x", ptr);pDC->TextOut(20, 50, str1);ptr = NULL;str1.Format("0X%x", ptr);pDC->TextOut(20, 80, str1);
}

 

delete ptr 之后ptr还是有值;ptr=NULL之后才是0;


如果指针指向的是数组,则需要使用delete[]操作符进行释放,

int* arr = new int[10];
......
delete[] arr; // 释放内存
arr = nullptr; // 将指针置为空,避免悬空指针问题

此外,在C++11之后,推荐使用智能指针(如std::shared_ptr、std::unique_ptr)来管理动态分配的内存,以更好地避免内存泄漏和手动释放的麻烦;
 

http://www.lryc.cn/news/274351.html

相关文章:

  • 三数之和【双指针】
  • http 503 错误
  • MATLAB - MPC - 优化问题(Optimization Problem)
  • 机器学习中的概念 张量、标量、向量、矩阵等数据结构的区别
  • eureka注册列表 某服务出现多个服务实例
  • ubuntu22.04配置双网卡绑定提升带宽
  • VINS-MONO拓展1----手写后端求解器,LM3种阻尼因子策略,DogLeg,构建Hessian矩阵
  • RxJS 操作符-学习笔记
  • 【Linux】linux配置静态IP、动态IP方法汇总
  • Hive自定义函数支持国密SM4解密
  • CentOS 8 8.5.2111 网络在线安装系统 —— 筑梦之路
  • 安全与认证Week3
  • 跟我学c++中级篇——再谈C++20中的协程
  • 【计算机毕业设计】SSM企业工资管理系统
  • x-cmd pkg | doggo - 现代化的 DNS 客户端
  • c++-智能指针
  • 烟花燃放如何管控?智能分析网关V4烟火检测保障烟火安全
  • Vue实现版本号输入、删除时光标自动移动到上、下一个输入框前端demo
  • 【胖虎的逆向之路】Android自制Https证书实现双向认证
  • 解析千兆多模光模块SFP-GE-SX
  • Go语言基础简单了解
  • kafka重平衡经验总结
  • Py之jupyter_client:jupyter_client的简介、安装、使用方法之详细攻略
  • 61.网游逆向分析与插件开发-游戏增加自动化助手接口-游戏红字公告功能的逆向分析
  • neo4j查询语言Cypher详解(五)--apoc
  • odoo17 | 视图操作按钮
  • KBDPL.DLL文件丢失,软件游戏无法启动,修复方法
  • Webpack5 常用优化总结
  • Oracle-视图与索引
  • 在Linux写自己的第一个程序“hello Linux”