2010-08-26 184 views
0

我正在寫一個Qt 4.6的應用程序(不包括Qt設計),當我關閉程序,我得到從Visual Studio這樣的錯誤:Qt的堆內存損壞

Windows已經引發了 測試斷點。可執行程序。

這可能是由於 堆的腐敗,這表明在 將Test.exe或任何它 加載的DLL的一個錯誤。

這也可能是由於用戶 在Test.exe具有焦點時按F12。

輸出窗口可能有更多 診斷信息。

這裏是源代碼:

(你不能編譯它,我不能共享使用庫)

有什麼不對?

+3

爲什麼不在這裏發佈代碼?否則使用http://pastebin.com/ – 2010-08-26 10:30:17

+0

它是6個文件,我認爲這很容易。我現在將這些文件添加到了pastebin中。 – 2010-08-26 10:46:56

回答

4

ExtWiiMote.h你宣佈

QLabel* dots[3][3]; 

,並在ExtWiiMote.cpp您使用dots[3][0]...

修復dots數組大小,可能你會沒事的。

+0

謝謝,那是問題所在! – 2010-08-26 11:03:51

0

上個月我有同樣的錯誤,但由於許多不同的問題可能導致它,我不知道我的答案會幫助你。

這是由沒有虛擬析構函數的派生類(Child)引起的。每次調試器進入Child的析構函數時都會彈出錯誤。由於我在工作並且無法訪問網站以獲取源代碼,因此我無法檢查此問題。

希望這可以幫助你

+0

我已經將文件添加到pastebin,您可以檢查它。 我會嘗試你的建議,也許這有幫助。 – 2010-08-26 10:47:48