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

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

我出现类似错误的情况是:

建立一个链表,在向链表插入完数据析构并释放掉链表的时候出现的错误。

为什么不知道,但是是这样解决的:

把插入链表的对象修改成 Type * p = new Type()的形式,然后直接传递指针,不要Type p,然后传递&p,这样就会报错。

可能Type p这种申请一个变量还是临时的变量,在插入其引用的时候数据可以很好的传递,但是释放链表的时候,应该只有一个p,因为这是个静态临时变量,内容一直在变化,但内存只有一个。而new每次都是新开辟一个空间。

这样在最后释放链表的时候,不至于只释放一个p的空间。

猜你喜欢

转载自blog.csdn.net/myyllove/article/details/84103601