首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么delete[]会导致堆损坏错误?

为什么delete[]会导致堆损坏错误?
EN

Stack Overflow用户
提问于 2017-03-23 11:25:51
回答 2查看 1.7K关注 0票数 0

我帮助我的朋友调试了一段代码,有问题的部分是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class MyClass {
    char * text;
public:
    MyClass(const char * c) {
        if (c != nullptr) {
            text = new char[strlen(c)];
            strcpy(text, c);
        }
        else
            text = nullptr;
    }
    ~MyClass() {
        delete[] text;
    }
};


int main() {
    MyClass foo("bar");
    return 0;
}

当然问题是用strlen(c),应该是strlen(c) + 1。无论如何,有什么让我惊讶的是,为什么在析构函数中调用delete[]时会导致堆损坏错误?是什么引起的?

这个错误是由调试器引发的,我的问题是:为什么这个错误出现在释放内存的时刻,而不是更早?以这种方式在代码中找到任何bug会容易得多。

@编辑旧的c= nullptr -> text = nullptr --我意外地写了一个bug (对不起,我没有注意到,这就是我的意思)。问题是,在这个任务中禁止使用字符串,所以必须使用C-way。很抱歉编辑了这么多。我真的得学会如何问准确的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-23 12:59:46

为什么这个错误出现在释放内存的时刻,而不是更早?

根据经验,当发生损坏时,不一定会在Visual中检测堆损坏。你不能指望在腐败之后才能被发现。尽管在这种情况下,在下一个可能的时间检测到了腐败,以检测腐败。Visual只在分配或释放内存时进行检查。

票数 1
EN

Stack Overflow用户

发布于 2017-03-23 11:54:21

堆损坏是由对的调用导致的造成的,该调用在分配的内存块结束后编写。当代码名为时,检测到了delete[]

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42985262

复制
相关文章
为什么Handler会导致内存泄漏?
最近在思考关于内存泄露的问题,进而想到了关于我们最常见和熟知的Handler在Activity内导致的内存泄漏的问题,这个问题相信作为开发都是很熟悉的,但是这背后更多的细节和导致泄漏的不同的情况,可能很多人就没有那么了解和清楚了,因此这次和大家分享一下什么情况下会导致内存泄漏,以及内存泄漏背后的故事。
没关系再继续努力
2021/11/22
1.3K0
【解决】rpm损坏导致无法yum
每天都要进步呀
2023/10/16
2690
【解决】rpm损坏导致无法yum
文件丢失?损坏?兼容性问题?到底是什么导致了错误
在日常的维护中,免不了和文件打交道,文件涉及的问题有很多类,这里讨论: 文件丢失,损坏,兼容性问题。 而对于文件丢失导致的问题一般比较容易定位,而文件损坏,特别是兼容性问题,这类排查起来就比较繁琐. 本文提供一种解决思路,望能起到抛砖引玉的作用.
qsjs
2020/06/09
8910
解引用NULL为什么会导致程序挂死?
解引用NULL指针为什么会出错,导致程序挂死?或者说访问内存地址为0的位置为什么会视为非法?
编程珠玑
2020/01/14
1.1K0
解引用NULL为什么会导致程序挂死?
为什么JSON.parse会损坏大数字,如何解决这个问题?
从10多年前JSON在线编辑器的早期开始,用户经常反映编辑器有时会破坏他们JSON文档中的大数字的问题。直到现在,我们也没能解决这个问题。在这篇文章中,我们深入解释了这个问题,并展示如何在JSON Editor Online中解决这个问题。
前端小智@大迁世界
2022/11/07
2.8K0
C++ 堆内存分配 new delete 简谈
堆区(heap)是内存空间,是区别于栈区、全局数据区和代码区的内存区域,是程序在运行时申请的内存空间。
叶茂林
2023/07/28
1900
一堆错误11
用户3519280
2023/07/08
2690
XDC约束中加入注释,为什么会导致该约束失效?
  在Vivado工程的调试中,xdc文件指定管脚后,我们偶尔会临时修改管脚位置,但之前的位置信息还想保留在xdc中,因此很多工程师就会选择将之前的管脚信息注释在修改位置的后面。比如下面的工程中,rxd_pin的位置本来是F25,我们需要临时改成E17,同时把F25注释到后面,表明这个位置之前是F25
猫叔Rex
2022/01/24
1.4K0
XDC约束中加入注释,为什么会导致该约束失效?
疑似使用倍思充电器导致iPhone损坏
reizhi 于 2018-6-5 在京东购买了一个倍思PD充电器,并配合此前在天猫购买的 Type-C 转 Lightning 数据线(C2L,下同)向 iPhone 充电。在充电过程中并没有发生任何异常,将手机电量从0%充至90%左右,机身也没有发生异常发热。不过在第二天使用手机时,无论是使用 C2L 数据线,还是普通数据线,都无法再向 iPhone 充电。与此同时,经测试倍思充电器以及 C2L 数据线均已损坏。
reizhi
2022/09/26
2.1K0
疑似使用倍思充电器导致iPhone损坏
错误的产品尺码数据分析会导致库存灾难
服饰零售企业向工厂、批发商、品牌商订货的时候,每个款式必须要具体到尺码。和我们自己买衣服一样,零售商批量下单也讲究尺码合适。
wujunmin
2021/09/07
4210
错误的产品尺码数据分析会导致库存灾难
超融合硬件损坏导致Oracle RAC异常恢复实录
墨墨导读:一套Oracle RAC环境运行在HW超融合环境中,由于硬件问题导致数据库crash,期间出现了不少数据坏块,本文详述整个恢复过程,希望对大家有帮助。
数据和云
2020/05/26
7470
JVM堆内存导致的FGC问题排查
Survivor Memory spaces (S0, S1): 幸存区,发生minor gc时,幸存区的对象全部复制到另一个里面去。
凯哥的Java技术活
2022/12/18
1.1K0
JVM堆内存导致的FGC问题排查
错误提示:Syntax error on token “function”, delete this token
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105706.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/09
6990
错误提示:Syntax error on token “function”, delete this token
porm导致项目运行错误
由于创建moduel基于原来项目之上导致porm会继承原有项目导致运行错误 解决:删除继承关系 relative
全栈程序员站长
2022/07/02
8520
porm导致项目运行错误
面试官:MySQL 唯一索引为什么会导致死锁?
insert ignore会忽略数据库中已经存在的数据(根据主键或者唯一索引判断),如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据.
蜗牛互联网
2022/10/31
1.7K0
JVM堆外内存导致的FGC问题排查
服务在线上环境频繁的Full GC。把相关运行时数据区的监控打开,发现堆外内存一直在上升。
凯哥的Java技术活
2022/07/08
7650
JVM堆外内存导致的FGC问题排查
Oracle库Delete删除千万以上普通堆表数据的方法
注意:下面方法以删除2014年之前的所有记录为例,请根据你的实际情况修改,防止误操作。
Alfred Zhao
2019/05/24
1.9K0
Java NIO为何导致堆外内存OOM了?
某天报警:某台机器部署的一个服务突然无法访问。谨记第一反应登录机器查看日志,因为服务挂掉,很可能因OOM。这个时候在机器的日志中发现了如下的一些信息:
JavaEdge
2022/02/02
1.8K0
Java NIO为何导致堆外内存OOM了?
空指针错误导致tomcat报404错误
项目代码的异常类型为500 400 没有404错误 线上却偶尔报404错误,导致成功率低于99% 追查发现是由于一个空指针错误,未被捕获抛出指定项目异常 mark
架构师刀哥
2018/03/20
1.4K0
点击加载更多

相似问题

导致堆损坏的delete[]

45

为什么在类对象数组上调用delete而不是delete[]会导致堆损坏?

22

为什么这个空闲语句会导致堆损坏错误?

20

delete []出现堆损坏错误

24

调用drawnow会导致堆损坏

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文