C++一个关于delete的幼稚错误

news2024/11/13 9:49:28

分析

在项目开发中,遇上这么一个错误:
image.png

0xc00000fd stack_overflow
这是一个栈溢出的错误,奇怪,我delete怎么会提示这么一个错误呢?
与是问题了群:
image.png

总结

这个错误实在是蠢啊!

没有细想,直接写了delete this; 这说明基础还是不扎实。
##delete 的工作方式
delete 运算符将调用函数运算符 delete。
对于不是类类型(class、struct 或 union)的对象,将调用全局 delete 运算符。
对于类类型的对象,如果 delete 表达式以一元范围解析运算符 (:: ) 开始,则会在全局范围中解析解除分配函数的名称。
否则,delete 运算符将在释放内存之前为对象调用析构函数(如果指针不为 null)
可为每个类定义 delete 运算符;如果给定类不存在这种定义,则会调用全局 delete 运算符。
如果删除表达式用于释放其静态对象具有虚拟析构函数的类对象,则将通过对象的动态类型的虚拟析构函数解析释放函数。

##更为通俗的说明为:
 (1)delete用于释放new操作所分配的内存资源。
 (2)delete与new是配对操作,也就是说,通过new分配的资源,只可以通过delete来释放。
 (3)delete调用时,如果释放的是类对象,那么,它会先调用类中的“析构函数”,再释放类对象所占用的内存空间。

##比如一个类:

class A
{
public:   
   A(){};
   ~A(){};
private:
    int num = 10;
}

int main()
{
  A* a = new A();
  delete a;
}

delete a的执行过程如下:
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1238590.html

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

相关文章

m4s格式视频文件如何转mp4?三个方法教会你!

m4s格式是一种视频分片格式,它将视频文件分成多个小块,方便网络传输和播放。这种格式常用于流媒体服务,如在线视频网站、直播平台等,比如B站哔哩哔哩下载下来的视频就是这种格式。 方法一:野葱视频转换器 一款音视频转…

【UE5】蓝图

在开发过程中,不可避免地会有一些蓝图的操作。同时,蓝图也是UE很有特色的一个内容。 了解蓝图是什么(What is BP?) 广义上:蓝图是UE内置的脚本语言,可以书写类似代码的逻辑。(任何可以连那种块…

代码随想录算法训练营第四十三天【动态规划part05】 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1049. 最后一块石头的重量 II 题目链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 求解思路: 等于把石头尽量分成重量相同的两堆 动规五部曲 确定dp数组及其下标含义:容量为j的背包,最多能装…

各大电商平台双十一“狂飙”,如何选择商城系统?

今年是“双十一”的第十五年。作为各大平台和品牌的全年最重要的营销节点,品牌们可谓是来势汹汹,各种促销活动和优惠力度让人眼花缭乱。 淘天数据显示,天猫促销活动开售当晚,155个品牌开卖成交额突破1亿元;首小时内7.1…

前端数组方法汇总集锦

前言 数组主要使用场景有: 存储和处理数据:数组是一种有序的数据结构,可以用来存储和处理多个相关的数据。在前端开发中,我们经常使用数组来存储和处理列表、表格、选项等数据。 循环和遍历:数组提供了循环和遍历的功能…

three.js学习总结超详细附带素材及源码

three.js学习总结超详细附带素材及源码 安装three.js npm install --save three引入three.js import * as THREE from threethree.js结构 three.js坐标 创建一个场景 scene场景,camera相机,renderer渲染器 创建一个场景 this.scene new THREE.Scene(…

Redis 性能管理 主从复制与哨兵模式

目录 redis性能管理 内存碎片率 如何清理内存 面试题 Redis雪崩 Redis集群大面积故障 面试:Redis的缓存击穿 Redis的缓存穿透 Redis的集群高可用方案 redis的主从复制 哨兵模式 redis性能管理 redis的数据缓存在内存当中 info memory #在redis数据库中查…

金蝶云星空部署包导出文件

文章目录 金蝶云星空部署包导出文件 金蝶云星空部署包导出文件 打开补丁包后,贴入导出文件的文件夹,然后按F2即可导出到目标文件夹。

软件测试工具常用的都有哪些

软件测试工具是用于辅助软件测试的软件工具,可以帮助测试人员执行测试用例、记录测试结果、跟踪缺陷状态等,提高测试效率和质量。以下是一些常见的软件测试工具: 一、AutoRunner自动化测试工具 AutoRunner(简称AR)是国内自主研发…

如何防止网络被入侵?

随着互联网的普及,网络安全问题越来越受到人们的关注。其中,如何防止网络被入侵是一个重要的问题。本文将介绍一些防止网络被入侵的方法,帮助大家保护自己的网络安全。 一、使用强密码 强密码是防止网络被入侵的第一道防线。一个好的密码应该…

d3dcompiler_47.dll缺失怎么修复,d3dcompiler_47.dll的作用有哪些

d3dcompiler_47.dll丢失是一种常见的电脑问题。如果你遇到了这个问题,不要惊慌,下面的方法可以帮助你解决。本文将详细介绍解决d3dcompiler_47.dll丢失问题的步骤,让你手把手地学会。 一.解决d3dcompiler_47.dll丢失问题的步骤 解决方法一&a…

2.4G无线收发芯片 XL2400P使用手册

XL2400P 系列芯片是工作在 2.400~2.483GHz 世界通用 ISM 频段的单片无线收发芯片。该芯片集成射 频收发机、频率收生器、晶体振荡器、调制解调器等功能模块,并且支持一对多组网和带 ACK 的通信模 式。发射输出功率、工作频道以及通信数据率均可配置。芯片已将多颗外…

驶入产业发展快车道,汉鑫科技人工智能研发中心正式启用!

11月18日,汉鑫科技人工智能研发中心正式启用。中心立足烟台,服务全国,聚焦工业智能、智能网联、智慧城市三大业务板块,以人工智能技术赋能政企实现“数智化”转型升级。该中心的启用标志着汉鑫科技在人工智能研发应用领域迈上了新…

JavaFx学习问题3---Jar包路径问题 (疑难杂症)

文章目录 前置提要:解决方法:调试JAR包后续补充: 前置提要: 我做了的JavaFx程序中,需要通过一个文件夹的相对路径,获取文件夹下所有音频文件的路径,把这些路径字符串放到一个List集合里,然后用Media让它播放声音。问题…

UVA11584划分成回文串 Partitioning by Palindromes

划分成回文串 Partitioning by Palindromes 题面翻译 回文子串(palind) 问题描述: 当一个字符串正序和反序是完全相同时,我们称之为“回文串”。例如“racecar”就是一个回文串,而“fastcar”就不是。现在给一个字符串s,把它分…

【擎标】CCID信息系统服务商交付能力等级认证标准

为顺应信息技术服务业发展趋势及市场需求,维护市场秩序,加强行业自律,促进信息系统服务商交付能力的不断提高,增强信息系统服务商创新能力和国际竞争力,支撑信息系统服务商转型提升,中国软件行业协会、企业…

数字化时代,企业数据治理成熟度如何建设

企业数字化转型不是从0到1,而是从1到100。转型是一个过程,场景从简单到复杂,应用从局部到广泛,持续优化、逐步成长。 数据治理的成熟度评估模型 可以说,几乎所有成熟度模型都借鉴了CMM的思路,基本都是将所…

2023 极客巅峰线上

linkmap 考点: 栈溢出ret2csu栈迁移 保护: 开了 Full RELRO 和 NX, 所以这里不能打 ret2dl 题目给了一些有用的函数: 在这个函数中, 我们可以把一个地址的数据存放到 BSS 段上. 漏洞利用 可以把一个 libc 地址比如 readgot 读取到 bss 上, 然后在修改其为 syscall. 后面就是…

Grafana Panel组件跳转、交互实现

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

实验4.数据全量、增量、比较更新

【实验目的】 1.利用Kettle的“表输入”,“表输入出”,”JavaScript代码”组件,实现数据全量更新。 2.熟练掌握“JavaScript代码”,“表输入”,“表输入出”组件的使用,实现数据全量更新。 【实验原理】 …