C++中delete崩溃的问题_c++ 调用delete崩溃-程序员宅基地

今天在写一个MFC的小程序的时候,发现一个很奇怪的现象。 当我编译完成后,运行出现了崩溃,跟踪一下看,发现是某个我new出来的对象在delete时崩溃。

经过反复调试,发现即使我new完之后马上delete,中间不做任何操作,也会出现崩溃。

找了一圈也没找到问题,后来实在不行,重新写,写一行或者链接一个库我就运行一次,终于发现是运行库的顺序问题!!!!!!!

这是一个很让人崩溃的问题,运行库的链接可能会导致内存越界!

msvcrt.lib,就是这个东西导致的,因为动态链接的库和静态链接的库可能会重载了new运算符,导致了不同的堆存在,可能会在一个堆上申请的空间在另一个堆上释放!

这里有两点需要注意:

1.尽量不要混合静态链接和动态链接,因为他们会申请不同的堆。

2.注意任何编译的警告,有些警告真的不是闹着玩的。。。warning LNK4098: 默认库“msvcrtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

这里已经明确提示开发者可能会出现冲突问题了,所以应该解决掉他!


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cyqyong/article/details/8911987

智能推荐

JDK常用的命令行工具_jdk vm参数 命令行-程序员宅基地

文章浏览阅读371次。JDK常用命令行工具(基于JDK10)原文链接:JDK常用命令行工具(基于JDK10)虽然我是在jdk10环境下, 但是大体上和jdk8是差不多的. 总共有这么多本来想着一口气把所有命令都边学边总结一下的, 结果发现....有些还真的不是很常用....或者说我这个水平还接触不到那么多. 于是我就把我能使用到的几个常用的总结一下了. 当做是笔记了.jshelljs..._jdk vm参数 命令行

(转)android Apk打包过程概述_android是如何打包apk的_安卓打包 tar 包 和 bin包-程序员宅基地

文章浏览阅读2.7k次。最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程。流程概述: 1、打包资源文件,生成R.java文件 2、处理aidl文件,生成相应java 文件 3、编译工程源代码,生成相应class 文件 4、转换所有class文件,生成classes.dex文件 5、打包生成apk 6、对_安卓打包 tar 包 和 bin包

C++11 原子类型与原子操作_c++ 原子-程序员宅基地

文章浏览阅读1.5w次,点赞17次,收藏72次。atomic_flag 只支持 test_and_set() 以及 clear() 两个成员函数,test_and_set()函数检查 std::atomic_flag 标志,如果 std::atomic_flag 之前没有被设置过,则设置 std::atomic_flag 的标志;有一个比较特殊的原子类型是 atomic_flag,因为 atomic_flag 与其他原子类型不同,它是无锁(lock_free)的,即线程对其访问不需要加锁,而其他的原子类型不一定是无锁的。原子类型C++11中通过。_c++ 原子

Windows server 2012安装.NET 3.5-程序员宅基地

文章浏览阅读132次。我们在搭建服务器时,很多时候需要安装.NET 3.5。在Windows Server 2008R2的时代,通过添加“功能”就可以很方便的来安装.net 3.5组件了。可是在Windows Server 2012中,要是使用同样的方法来添加.NET 3.5是常常会报错。这是因为在安装Windows Server 8的时候没有,将.net 3.5的文件安装导致的。就需要我们指定..._2012r2.nt3.5离线安装

五年一贯制专转本计算机网络真题,江苏五年一贯制专转本真题-程序员宅基地

文章浏览阅读570次。类似问题答案2017年江苏广播电视学校五年一贯制专转本报名时间一、报名时间 2018年3月9日-3月19日2017年江苏广播电视学校五年一贯制专转本报名条件二、报名条件 1.思想品德好,遵纪守法; 2.所学专业符合接收高校专业的要求; 3.修完学校教育教学计划规定内容,能正常毕业; 4.未解除记过及以上纪律处分的,不得报考。2017年江苏广播电视学校五年一贯制专转本报名三、报名 在符合条件的五年一..._江苏五年一贯制专转本计算机专业真题

HashMap的jdk1.8分析_hashmap jdk1.8-程序员宅基地

文章浏览阅读229次。HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。_hashmap jdk1.8

随便推点

如何成为杰出的程序员?Glide的缓存机制,已拿offer入职_glide依赖-程序员宅基地

文章浏览阅读60次。一、结缘实话说,最开始刷题的时候,刷的是 LeetCode,后来才注意到了剑指 offer 的存在,最开始也是听别人说的,剑指 offer 在面试过程中出现的概率很大,就去尝试将其都做了一遍,做的过程中发现,其实有一部分题目与 LeetCode 有重合,但是更像是 LeetCode 经典题目的集合,更具有代表性。最开始刷过一遍剑指 offer 后,其实印象并不深,直到我参加了 2020 年的秋招面试,才深刻的意识到剑指 offer 的题目出现高频性,至此之后,但凡有人问我怎么刷题,我都会先推荐刷剑指 o_glide依赖

问小鱼如何看?小米机器人之铁蛋!_384-core nvidia volta gpu with 48 tensor cores-程序员宅基地

文章浏览阅读512次。大家好,我是早上被雨淋了肚子痛了一天的加班鱼。昨晚临睡时,看到群里在讨论小米的机器人,原来雷总发布会上亮相了一个机器狗名字叫铁蛋。既然是小米,价格肯定是低的,9999,依然是得了穷病的小鱼买不起的价格。天下的机器人都很贵,贵在硬件上(GPU:384-core NVIDIA Volta GPU with 48 Tensor Cores),所以小鱼就围观一下铁蛋软件,结果被小鱼看到了熟悉的Ubuntu 18.04+ROS 2。关注小鱼比较早的(五谷)鱼粉都知道小鱼最近一直在做ROS2的教_384-core nvidia volta gpu with 48 tensor cores

java入门与学习笔记(不定时更新)-程序员宅基地

文章浏览阅读250次。Eclipse使用 参考链接:Eclipse简明使用教程(java集成开发环境)_广源的博客-程序员宅基地_eclipse使用教程 https://blog.csdn.net/qq_36243942/article/details/81607906?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162241964616780271558424%2522%252C%2522scm%2522%253A%252220140713.1301...

Matlab中的filter函数的延时,MATLAB 中 filter 函数的使用-程序员宅基地

文章浏览阅读1.2k次。一维数字滤波滤波器filter 使用filter1-D digital filterSyntaxy = filter(b,a,X)[y,zf] = filter(b,a,X)[y,zf] = filter(b,a,X,zi)y = filter(b,a,X,zi,dim)[...] = filter(b,a,X,[],dim)滤波函数 0.15H(..._matlab filter 延时z

13.jmeter5.10.1 组件-断言—响应断言如何设置_响应断言怎么设置-程序员宅基地

文章浏览阅读2.3k次。响应断言可以将请求或响应的各个字段与模式字符串进行比较。Apply to:用于可以生成子取样器的取样器。例如带有嵌入资源的HTTP取样器、Mail Reader 或者事务控制器生成的取样器。Main sample only -只能应用到主取样器。Sub-samples only - 只能应用到子取样器Main sample and sub-samples – 可以同时应用到主取样器和子取样..._响应断言怎么设置