【发布时间】:2010-08-14 04:51:21
【问题描述】:
当我收到“无效指针操作”错误时,这是我的调用堆栈窗口:
CalStack http://m8spy.com//PersonalFs/M8SPY_Images/CallStack_1.png
这个错误的原因是什么?
谢谢
【问题讨论】:
-
如果不看一些代码就很难分辨...
-
首先展示
TChunk.Destroy的实现
当我收到“无效指针操作”错误时,这是我的调用堆栈窗口:
CalStack http://m8spy.com//PersonalFs/M8SPY_Images/CallStack_1.png
这个错误的原因是什么?
谢谢
【问题讨论】:
TChunk.Destroy的实现
您试图释放内存管理器不识别为属于它的内存。
异常来自对象的析构函数,这表明您正在尝试释放已被释放的对象。否则,您将在一个变量上调用Free,而该变量一开始就没有有效的对象引用;注意关于未初始化变量的编译器警告。
【讨论】:
请参阅this article 中的“FastMM”项。虽然它说的是内存泄漏,但它实际上是对调试内存管理器的介绍,这些管理器用于发现动态内存的问题 - 就像你的情况一样。
【讨论】: