2010-08-26 195 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