1

我正在使用 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

我无法弄清楚为什么会发生这种情况......:-(

4

1 回答 1

2

c0000005 是一个访问冲突错误,一个常见的原因是您可能会尝试通过无效指针访问已经解除分配的内容(基于它在应用程序退出时发生的信息)。

Qt 的一个常见错误是在堆栈上分配子小部件,如果父小部件首先被销毁,它会在子地址上调用delete (未在堆上分配的地址也可能导致错误),但基本上你必须调试您的程序才能找到错误。

于 2013-01-31T15:04:04.603 回答