执行了多次QCoreApplication::processEvents(QEventLoop::AllEvents, 100);语句后,我的一个类成员变量QVector<QRect> _listRect的size从1变成0了,后面访问 _listRect的时候程序崩了,报错ASSERT failure in QVector<T>::at: "index out of range", file C:\Qt\Qt5.12.1\5.12.1\msvc2017_64\include\QtCore\qvector.h, line 429。怎么解决这个问题?
2022/11/12
问题已解决。运用搜寻关键字clear的方法,我发现在一个槽函数里对容器QRect进行了清空操作,这个槽函数在不是期望的时候响应了,修改槽函数响应逻辑后,容器QRect可以正常访问了,程序不再崩了。
总结:1.读程序不仔细,没有完全搞清楚整个程序的运行逻辑。2.积极提问,通过网络社区、社交软件等渠道与同专业人员交流。3.留存开发记录或学习经历,通过纸质形式或者电子形式写下遇到的问题或心得体会,供自己回忆、他人参考。
这不就是数组越界了嘛。自己检查下访问这个Qvector的时候是否有超出数组范围