C++中提示 堆损坏 内存冲突 程序异常中断......

最近在做项目时,开发的算法在win32中独立运行没有问题,移植到MFC框架中,运行一直保存,并且每次报错的地方和报错的内容都不一样,排查十分困难,差不多花了我三四天的时间,今天晚上终于搞定了!

每次报错的内容大概有以下几种:

1.堆损坏;

2.内存冲突;

3.异常中断;

。。。。。。

我也曾经怀疑过是自己内存开辟出错,请教别人也没有看出(算法量太大,别人无法仔细查看),而且每次出错的地方也都不一样(MFC框架在多线程中运行)。

经过几天的调试(也不是全天都在调试),发现都是低级的错误,主要有以下几种:

1.内存开辟使用完后没有及时的释放,程序循环运行时,内存崩溃;

2.循环体外开辟的内存在循环体内释放,导致一次开辟多次释放,内存管控异常;

3.申请的内存跨线程使用,但是释放的地方有误(还没有使用完就提前释放了);

经过上述的内存检查后,程序还是崩溃!我真的无法再排查了,请教他人无果。

在我快要崩溃的时候,但想到程序不久就要在产线试运行!我下狠心了,将自己写的代码,又从前至后一遍遍的看,一遍遍的调试,终于发现代码中有两行在复制其它的代码时,名称没有更改(名称太相似了,不仔细看很难看出!),修改后,程序终于一路畅通!,这种感觉爽爆了!


心得体会:

作为程序员,必须要细心!,而且还要有良好的编程习惯!此外,遇到问题一定不要轻易放弃,一定要顶住压力,求责于己,静心排查!相信自己,一定可以排除万难!




  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spire.XLS for C++ 是一个用于处理 Excel 文件的 C++ 类库,可以帮助开发人员轻松地读取、写入和操作 Excel 文件。下面是将 Spire.XLS for C++ 集成到 C++ 程序的步骤: 1. 下载并安装 Spire.XLS for C++。你可以从该公司的官网下载并安装该软件。 2. 在你的 C++ 项目添加 Spire.XLS for C++ 的头文件和库文件。你需要在项目设置添加 Spire.XLS for C++ 的头文件路径和库文件路径,以及将 Spire.XLS for C++ 的库文件添加到链接器。 3. 在你的 C++ 代码使用 Spire.XLS for C++。你可以使用 Spire.XLS for C++ 提供的 API 来读取、写入和操作 Excel 文件,例如: ``` #include <stdlib.h> #include <iostream> #include <string> #include "XLSCore.h" using namespace Spire::XLS; using namespace std; int main() { // 创建一个 Excel 文档对象 XLSDocument doc; // 打开一个 Excel 文件 if (!doc.LoadFromFile("test.xlsx")) { cout << "打开 Excel 文件失败!" << endl; return 1; } // 读取 Excel 文件的数据 XLSWorksheet sheet = doc.GetWorksheetByName("Sheet1"); if (sheet.IsNull()) { cout << "找不到名称为 Sheet1 的工作表!" << endl; return 1; } XLSRange range = sheet.GetUsedRange(); int rows = range.GetRowCount(); int cols = range.GetColumnCount(); for (int i = 1; i <= rows; i++) { for (int j = 1; j <= cols; j++) { XLSRange cell = range.GetCell(i, j); string value = cell.GetValue(); cout << value << "\t"; } cout << endl; } return 0; } ``` 这段代码使用 Spire.XLS for C++ 打开一个名为 "test.xlsx" 的 Excel 文件,并读取其的数据。你可以根据自己的需求使用 Spire.XLS for C++ 提供的 API 来操作 Excel 文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值