我已经使用MSVC2008从源码构建Qt,因为它建议避免任何不兼容问题。当我使用返回QList对象的Qt函数时,我遇到了问题。Qt在使用QList时崩溃(堆损坏)
QList<QNetworkInterface> *netInterfaces = new QList<QNetworkInterface>;
*netInterfaces = QNetworkInterface::allInterfaces();
delete netInterfaces;
该代码将始终“删除netInterfaces”在free.c试图以释放内存时崩溃。它指出堆已损坏,我不知道为什么,因为所有东西都是用相同版本的MSVC编译的。
它发生的返回,甚至当我只需要调用该函数的QList对象Qt的所有功能:
QNetworkInterface::allInterfaces();
通过上面的代码,应用程序将总是立即试图通过Qt的分配空闲堆时崩溃。奇怪的是,这只发生在Debug版本中。发布版本工作正常,没有任何崩溃。
我的Qt 4.8.0使用/ MT(多线程)编译,我动态链接到库。我的应用程序也被编译为多线程。
有没有人知道这可能是什么原因造成的问题?
我想我已经找到了解决我的问题在这里:http://qt-project.org/forums/viewthread/16513任何人都可以确认吗? – blackd0t
确保您不要混用版本和调试版本。使用[dependency walker](http://www.dependencywalker.com/)确认可执行文件仅与运行时的一个副本链接。 –