我已經使用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/)確認可執行文件僅與運行時的一個副本鏈接。 –