我从CWinThread类上派生了一个类CGameSocket,从CGameSocket类上派生了CSocketThread类
我new CSocketThread类,然后在退出时delete this;

VC2005 Debug模式运行时报HEAP Corruption DETECTED。。。。。错误,就在delete this那里,从新运行程序并在new的地方和delete this那里下断点,发现在DEBUG模式下在堆中new对象时C++编译器会在new到的指针前后各放4字节的0xFD,在delete时检查前后的值是否为0xFD,如果不为0xFD则出现内存溢出。有问题就跟踪到C++的源码中去,你会发现很多平常调试时学不到的东西.

虽然发现这个“密秘”了,但是我的问题还是没有解决,再跟踪,我发现在new对象时,new完(也就是构造函数执行完了),我看了一下new返回的指针前后的内存数据,尾部的前面3个0xFD被清0了,OK,再重新运行,跟入到构造函数中去,发现在对一个成员变量进行清0时,会碰到那3个值,很奇怪,在内部对成员变量进行赋值操作会改到内存以外的值。。。郁闷中。。。百思不得其解,后来sizeof了类的大小,发现不是默认的4字节对齐,在类中,有几个成员变量,都是DWORD的,要不就是指针,只有一个BYTE成员,就出在这个BYTE成员上,找了老长时间的问题终于找到了,总算安心了。睡了,有写的了再写。。。

转载于:https://www.cnblogs.com/Leejia/archive/2008/01/21/1046646.html

由HEAP Corruption DETECTED查到的相关推荐

  1. C语言Free时报错HEAP CORRUPTION DETECTED

    char *k1; k1 = (char *) malloc(4*sizeof(char)); v1 = (char *) malloc(4*sizeof(char));  strcpy(k1,&qu ...

  2. C++debug调试出现heap corruption detected: after normal block 可能的原因

    最近在刷C++题目的代码,在刷题过程中出现了 heap corruption detected: after normal block 这种错误出现的概率应该还是蛮高的: 这是典型的内存溢出错误,常在 ...

  3. C语言错误: HEAP CORRUPTION DETECTED

    程序源代码: //写文件两种方式(文本文件和二进制文件)#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdl ...

  4. signal 6 (SIGABRT), code -6 (SI_TKILL) Abort message: ‘stack corruption detected (-fstack-protector

    在测试调用native的rw_i93.cc文件的rw_i93_sm_format函数时,出现程序crash,报错信息如下 12-18 11:19:39.056  1453  2114 I WifiSt ...

  5. C++中Delete时堆错误(Heap Corruption)的原因

    最近这三四天一直在跟一个bug做斗争:程序在运行过程中死掉,Output窗口显示: 1.Windows has triggered a breakpoint in ***, This may be d ...

  6. 调用dll时出现“Unhandled exception 堆已损坏(heap corruption)“异常解决方法

    转自:http://blog.sina.com.cn/s/blog_668aae780101iou9.html http://yaogangshi.iteye.com/blog/1001690 htt ...

  7. 数据结构 严薇敏 顺序表的实现(增 删 改)及其使用方法详解

    时间复杂度 数据结构 时间复杂度和空间复杂度 目录 1.线性表 2.顺序表 2.1概念及结构 2.2 接口实现 SeqList.h SeqList.c 2.2.1初始化链表以及销毁链表的实现 初始化顺 ...

  8. GFlags调试堆中野指针

    我个人觉得写代码最悲哀的就是,程序的出错结果往往出人意料,并不在自己预期的错误列表中,其中堆中的野指针就是一个很隐蔽的问题.记得之前写了一个模块,后来因为功能升级,而修改了部分接口,等到运行的时候,老 ...

  9. Qt开发奇葩问题总集

    Qt开发奇葩问题总集[持续更新中] 文章目录 Qt开发奇葩问题总集[持续更新中] 说明: 使用 QColorDialog 控制台出现提示 :x: Qt 运行程序控制台 自动输出 CUserInputP ...

最新文章

  1. sscanf用法总结
  2. 学习 Message(14): 区分左右 Shift、Ctrl、Alt
  3. raptor五个数排序流程图_数据结构与算法(一):排序(上)
  4. 一篇文章教你学会Java泛型
  5. mysql 线程池 下载_java线程池实现批量下载文件
  6. netstat(win)
  7. 云计算介绍-1.2,IaaS\PaaS\SaaS比较
  8. 坦克位置伺服系统分析与设计_伺服电机噪音及不稳定分析
  9. 关于禅道项目管理软件
  10. CAD:计算三角形的外接圆圆心
  11. 带宽与响应速度的关系
  12. [linux] grep -rn 当前目录搜索字符串
  13. 英特尔奔腾芯片漏洞_什么是奔腾(英特尔)?
  14. 【JY】橡胶支座精细化模拟与有限元分析注意要点
  15. python中小数点后取2位(四舍五入)以及取2位(四舍五不入)的方法总结
  16. centos 一键卸载Openstack
  17. 钉钉更新后,钉钉回放视频python下载
  18. inherit和initial:两个特殊的css值
  19. Webapck 体系基础
  20. 物联网在智慧农业中的应用

热门文章

  1. 张朋——一个血癌患者,他需要我们大家的救助!(附张朋求助网)
  2. POJ 2226 二分图最小覆盖
  3. iOS 使点击事件穿透透明的UIView
  4. Http协议与TCP协议理解(转载的)
  5. 第十周 11.1-11.7
  6. 【转】Git详解之四 服务器上的Git
  7. Cookies和Session(三)--SessionState
  8. 解决SQL查询总是 超时已过期
  9. 回首我的2007 12/25
  10. HTML5 音视频操作