我正在使用opencv和QT进行视频处理项目。每一段代码都运行完美,但是当我关闭应用程序的GUI时,它会显示Windows 7中停止工作的错误:
Problem signature:
Problem Event Name: APPCRASH
Application Name: QtTracker3.exe
Application Version: 0.0.0.0
Application Timestamp: 510a7ebe
Fault Module Name: ntdll.dll
Fault Module Version: 6.1.7600.16695
Fault Module Timestamp: 4cc7ab44
Exception Code: c0000005
Exception Offset: 00052016
OS Version: 6.1.7600.2.3.0.256.1
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
调试器给出:
Debugging starts
HEAP[QtTracker3.exe]:
Heap block at 0BF96368 modified at 0BF96380 past requested size of 10
HEAP[QtTracker3.exe]:
Invalid address specified to RtlFreeHeap( 00020000, 0BF96370 )
Debugging has finished
我不知道为什么会发生这种情况...:-(
c0000005 是访问冲突错误,一个常见的原因是您可能会尝试通过无效指针访问已取消分配的内容(基于它在应用程序退出时发生的信息)。
Qt的一个常见错误是将子小部件分配给堆栈,如果父小部件首先被销毁,它会在子地址上调用删除(未在堆上分配的地址,也可能导致错误),但基本上你必须调试你的程序才能找到错误。