Using a timer I call the slot checkBookings() repeatedly.
I am able to compile and run the program, but it crashes when executing the above FOR loop.
Error:”ASSERT failure in QList::at: “index out of range”, file ../../../../Qt/2010.05/qt/include/QtCore/../../src/corelib/tools/qlist.h, line 455
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.”
My code is:
timer = new QTimer();
connect(timer,SIGNAL(timeout()),this,SLOT(checkBookings()));
timer->start(500000);
void Canvas::checkBookings()
{
QString dateStr;
for(int i= 0;i<=qlist.count();i++)
{
dateStr = qList.at(i).at(6);
}
}
Replace <= with < in your for loop. Like this:
The reason is qList.count() is the number of items in the list so you do not ever want to try to use qList.at(qlist.count())
Edit:
By having <= in the for loop remember that the at last iteration of the for loop i=qlist.count(). So then when the code executes the statement in the loop it essentially does this: