MyTest1.exe 在 C++ / MFC 程序中触发了删除命令的断点
MyTest1.exe has triggered a breakpoint on delete command, in C++ / MFC program
我在以下代码中执行"delete"命令时收到消息"MyTest1.exe触发了断点":
void Test::delPt(int i)
{
delete pt[i];
pt[i] = NULL;
}
void Test::clrPts()
{
int i;
for (i = 0; i < n_pts; i++)
delPt(i);
n_pts = 0;
}
数组声明如下:
BasePt *pt[NUM_PTS];
。并且每个数组元素都是使用"new"命令创建的。 BasePt 析构函数中没有代码。 我不确定这里发生了什么,如有必要,我可以提供更多细节。 我正在使用Visual Studio 2012。
此问题是由某种堆损坏引起的。 通过使用视觉检漏仪,我能够消除任何泄漏问题,但问题仍然存在。 我试图减少程序,直到问题没有发生,然后重新添加代码,但这并没有导致我找到问题的根源。 我的问题是,一般来说,我如何找到堆损坏的根源? 程序中必须存在堆已损坏的第一个点。
(更新)最终我发现了错误,这是我代码另一部分的一些堆损坏。 公平地说,我不可能发布我的所有代码,因为我的项目非常大。 当我发布原始消息时,我不知道这是一个堆损坏问题。 不知道为什么我得到了所有的反对票。
相关文章:
- 将数组的地址分配给变量并删除
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C/C++编译器通常会删除重复的库吗
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 从链接列表c++中删除一个项目
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在命令行上将输入显示到数组中时如何删除 ./a.out?
- QUndoStack 删除特定命令
- 运行gcovr命令后,无法生成代码覆盖率,也无法从子目录中删除.gcda
- 在命令上创建或删除GDI形状
- 使用命令行标志删除Google测试锅炉框架输出
- MyTest1.exe 在 C++ / MFC 程序中触发了删除命令的断点
- 悬空指针和删除命令C++
- C++正在删除命令行
- _block_type_is_valid(phead- nblockuse)因为删除命令
- 在Xcode中使用gcc构建时,如何删除不需要的命令行选项?
- c++删除和重命名命令
- Git 状态显示奇怪的未跟踪"path_of_filer"文件,如何通过命令行删除
- 当从c#调用外部dll时,从命令行参数中删除空格