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.mzph.cn/news/599529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux Shell】4. 数组

文章目录 【 1. 数组的定义 】【 2. 读取数组 】【 3. 关联数组 】3.1 关联数组的定义3.2 关联数组元素的调用 【 4. 获取数组中的所有元素 】【 5. 获取数组的长度 】 数组中可以存放多个值。 Bash Shell 只支持一维数组(不支持多维数组),初…

算法训练第五十九天|503. 下一个更大元素 II、42. 接雨水

503. 下一个更大元素 II: 题目链接 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之…

imgaug库指南(五):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里,数据是模型训练的基石,其质量与数量直接影响着模型的性能。然而,获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此,数据增强技术应运而生,成为了解决这一问题的…

智慧校园全空间三维电子沙盘系统

一、概述 易图讯科技(www.3dgis.top)采用大数据、云计算、虚拟现实、物联网、AI等先进技术,自主可控高性能WebGIS可视化引擎,支持多用户客户端通过网络请求访问服务器地图和专题数据,提供地理信息数据、专题数据的并发…

对象克隆学习

假如说你想复制一个简单变量。很简单: int apples 5; int pears apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。 但是如果你复制的是一个对象,情况就有些复杂了。 …

代理(Proxy)模式

代理(Proxy)模式介绍 作用:通过代理可以控制访问某个对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。(即: AOP的微观实现!) 核心角色 抽象角色(接口…

C++初级(三)

我们这里还是在C基础上进行对C基础语法的补充学习! 一.C数组 C数组大体和C相同,但是C数组还是有一定的区别的。 我们先看看C和C数组共同的易错点知识: 1.数组只能一次初始化。 2.如果对数组只进行一部分初始化,那么其他未初始…

【React系列】Hook(一)基本使用

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 认识hook 1.1. 为什么需要hook Hook 是 React 16.8 的新增特性,它可以让我们在不编写class的情况下…

群晖Docker部署HomeAssistant容器结合内网穿透远程控制家中智能设备

目录 一、下载HomeAssistant镜像 二、内网穿透HomeAssistant,实现异地控制智能家居 三、使用固定域名访问HomeAssistant 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站 Ho…

Guava Cache 异步刷新技巧,你值得拥有!

以下文章来源于勇哥Java实战 ,作者勇哥 Guava Cache是一款非常优秀的本地缓存框架。 这篇文章,我们聊聊如何使用 Guava Cache 异步刷新技巧带飞系统性能 。 1 经典配置 Guava Cache 的数据结构跟 JDK1.7 的 ConcurrentHashMap 类似,提供了基…

citeSpace保姆级安装使用教程

citeSpace保姆级安装使用教程 文章目录 citeSpace保姆级安装使用教程CiteSpace功能与参数区安装使用知网数据导出citespace数据导入结果 设置操作隐藏节点 CiteSpace功能与参数区 安装 citeSpace安装教程 citespace下载 网址:https://citespace.podia.com/ 安装之…

STM32使用中断方式进行USART数据收发以及printf函数的重写

时间记录:2024/1/5 一、USART/UART介绍 协议介绍 (1)起始位,一位逻辑电平0表示 (2)数据位,8-9位,逻辑高低电平,一般使用8位 (3)校验位&#xff…

2-sql注入之sqli-labs靶场搭建

文章目录 SQL注入之sqli-labs靶场搭建1、Sqli-labs环境安装需要安装以下环境工具下载链接: 2、phpstudy连接mysql总是启动了又停止第一种情况可能是端口占用问题第二种情况就是曾经在电脑上安装过mysql SQL注入之sqli-labs靶场搭建 Sqli-labs是一个印度程序员写的&…

vmware中ubuntu虚拟机不能够用共享文件夹

有时候发现装好虚拟机后,然后 虚拟机-设置-选项-共享文件夹 然后使用快捷键ctrlaltt 打开命令行,cd /mnt下没有看到hgfs文件夹 解决办法是安装vmware tools工具 此时想通过点击 虚拟机-安装vmwaretools工具 按钮 居然发现该按钮是灰色的&#xff0…

CMake入门教程【核心篇】动态库(dll, so)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 CMake入门教程【核心篇】动态库(dll, so)1.简介2.动态库的优势3.动态库的劣势4.创建动态库5.完整代码示例6.实战使用技巧与注意事项

实现文件拖拽上传的功能

1 先来看一下效果 2 我们来看一下代码执行的结果: 我们创建目标的容器盒子 和可以展示数据的ul 监听进入目前盒子的事件 3 文件进入目标容器中解析文件

Python中 的函数介绍

函数 在Python中,函数是用来执行某种功能的 函数定义 def function_name(参数列表):代码块[return val]比如 #---------------定义------------- def add_3(num):newnum num3return newnumnum 3 print(add_3(num))函数调用 def add_3(num):newnum num3return newnumnum …

科研上新 | 第6期:优化LLM数学推理;深度学习建模基因表达调控;基于深度学习的近实时海洋碳汇估算

编者按:欢迎阅读“科研上新”栏目!“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里,你可以快速浏览研究院的亮点资讯,保持对前沿领域的敏锐嗅觉,同时也能找到先进实用的开源工具。 本期内容速览 …

在 IDEA 中创建JavaWeb 项目的方式(超详细步骤教程和遇到的问题)

目录 0-1项目图片操作步骤链接0-2项目结构预览1.新建Project2.定义项目名称3.创建完成后项目结构4.创建config文件夹4.1 作用 5.在WEB-INF下创建lib文件夹5.1然后搞几个常用的jar包放入5.1.1jar包全选中后右键选择放入类库5.1.2jar包全选中后右键选择放入类库 6.创建src下文件夹…

软件测试金融项目经验总结,面试题都问什么?

1、APP端/客户端接口加解密介绍 加密方式(两种): 在TCP/IP四层模型中的应用层进行加密。类似密码本,当前项目使用的是这种,可以看到所有响应内容,只是看不懂。 在TCP/IP四层模型中的运输层和应用层之间进行…