今天遇到一个很奇怪的问题,

当代码如下时:

char* s = (char*)malloc(20*sizeof(char));
string buffer;
const char* conchar;
char* p;
double x = 0.01;
while(getline(file,buffer)){const int len = buffer.length();conchar = buffer.c_str();//m_conchar为const char *strcpy(s,conchar);//换成char*cout<<x<<endl;
}

上述不是我完整的程序,cout是实例,就是每次运行到cout只要输出是小数都会出错,而int类型啥的都不出错。

当工程设置运行库“多线程DLL(MD)”

XXX.exe 中的 0x7707e4e4 (ntdll.dll) 处有未经处理的异常: 0xC0000005: 写入位置 0x0000000000000024 时发生访问冲突

当工程设置运行库“多线程调试DLL(MDd)”

只要是cout或者file.close()或者free(s)都会出现

其原因可能是堆被损坏,这也说明 XX.exe 中或它所加载的任何 DLL 中有 bug

http://blog.csdn.net/blz_wowar/article/details/2176536

但是感觉这些都不适用,没有自己加载的dll。

之后一点一点注释,发现没有strcpy这个函数就不会崩溃,而加上之后在cout处还是会崩溃,每次出错都在C的运行时库,后来把代码改成了

//char* s= (char*)malloc(20*sizeof(char));
string buffer;
//const char* conchar;
char* p;
double x = 0.01;
while(getline(file,buffer)){const int len = buffer.length();char* s = new char[len];strcpy(s,buffer.c_str());//conchar = buffer.c_str();//m_conchar为const char *//strcpy(s,conchar);//换成char*cout<<x<<endl;//delete s;
}

这样可以顺利运行,但是delete的时候程序会有问题,这样就造成了内存泄露,很奇怪。

最后搞清楚了这种情况是越界了,所以free会出错,delete也会出错,http://blog.csdn.net/kuaile123/article/details/10215483

可能是堆被损坏,这也说明 XX.exe 中或它所加载的任何 DLL 中有 bug相关推荐

  1. C++ windows已在xxx.exe中触发一个断点,其原因可能是堆被损坏,这说明xx.exe中或它所加载的任何DLL中有bug。

    windows已在xxx.exe中触发一个断点,其原因可能是堆被损坏,这说明xx.exe中或它所加载的任何DLL中有bug.  原因也可能是用户在xx.exe具有焦点时按下了F12.  输出窗口可能提 ...

  2. 其原因可能是堆被损坏,这也说明 xxx.exe 中或它所加载的任何 DLL 中有 bug

    1.代码如下: string src ="abcdabcd"; char* dst = new char[8]; strcpy(dst,src.c_str()); delete[] ...

  3. 逆战d3dx10_43.dll文件加载失败及dll文件缺失损坏修复解决方案

    废话前言:本人对电脑底层了解不太深,因此在前些天因为idea出现一个显示"构建进程终止异常"的bug,尝试网上很多解决方案都没有成功,无奈之下只好重装系统.但重装系统后,逆战又显示 ...

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

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

  5. vs运行程序时报错:“XXX处有未经处理的异常: 0xC0000374: 堆已损坏”

    使用vs运行程序时我们有时候会看到这样的一个错误:"XXX处有未经处理的异常: 0xC0000374: 堆已损坏".导致该错误产生的原因一般是是访问了未分配的地址,内存越界造成的, ...

  6. XXX处有未经处理的异常: 0xC0000374: 堆已损坏,处有未经处理的异常: 0xC0000005: 读取位置 0x4F774B16 时发生访问冲突。

    XXX处有未经处理的异常: 0xC0000374: 堆已损坏,处有未经处理的异常: 0xC0000005: 读取位置 0x4F774B16 时发生访问冲突. ** 出现该问题的场景是其他公司调用我们的 ...

  7. 未经处理的异常: 0xc0000374: 堆已损坏

    问题描述 点击登陆按钮时,会创建一个登陆对象(该对象是一个登陆UI界面,包含一个db数据库连接和查询),关闭该登陆UI界面后,再次点击登陆,会出现一个异常:未经处理的异常: 0xc0000374: 堆 ...

  8. 0xc000000f 由于系统注册表文件丢失或损坏,因此Windows无法加载

    WIN7出现以下情况,是thinkpad x61笔记本.Windows未能启动.原因可能是最近更改了硬件或软件,解决此问题的步骤: 1:插入Windows安装光盘并从新启动计算机. 2:选择语言设置, ...

  9. python变量存储 堆与栈内存内存_浅析JS中的堆内存与栈内存

    最近跟着组里的大佬面试碰到这么一个问题, Q:说说var.let.const的区别 A:balabalabalabla... Q:const定义的值能改么? A:你逗我?不能吧 不知道各位看官怎么想? ...

最新文章

  1. HashMap 1.8 源码解析以及非线程安全分析
  2. 前端的百度地图的api的使用
  3. Codeforces Round #672 (Div. 2)
  4. C语言关键字 ISO/ANSI C90 C99 C11
  5. 【51单片机快速入门指南】2.1:数码管显示数字、小数 (科学计数法)
  6. android来电事件,android – 来电时没有响铃事件
  7. c语言怎么产生随机字母,菜鸟求助,写一个随机输出26个英文字母的程序
  8. HTML5对表单的一些有意思的改进
  9. php mysql房屋中介管理系统_基于是用PHP+MySQL实现在线租房管理系统.doc
  10. java mockserver搭建_使用Moco搭建Mock Server教程
  11. xvid编解码器安装
  12. markdown 转 pdf
  13. 20年前的网文:我彷徨在唯物主义和唯心主义之间
  14. html特殊符号怎么输入法,教您特殊符号怎么打出来
  15. Python3网络爬虫(十四):跟股神巴菲特学习炒股之财务报表入库(MySQL)
  16. kafka reassign 限速_车主无忧:为什么放弃开源Kafka?
  17. 微信朋友圈的软文写作技巧
  18. 「数据架构」介绍下一代主数据管理(MDM)
  19. 1000瓶水和1瓶毒水还有10只老鼠
  20. steam人机身份验证一直重复_Steam官方公布5月最热新游排行榜 竟遭免费游戏霸榜?...

热门文章

  1. GIS中的拓扑关系和ArcGIS中的拓扑
  2. 【Cocosd2d实例教程八】Cocos2d实现碰撞检测(含实例)
  3. day24 面向对象与实例属性
  4. mysql 批量删除数据
  5. Linux 精准获取进程pid--转
  6. RSA加密解密及数字签名Java实现--转
  7. 机器学习-数据科学库(第三天)
  8. 感受亚马逊:“抠门”的巨无霸电商如何炼成
  9. 算法与数据结构(归并排序)
  10. 深入理解分布式技术 - Paxos 算法解读