• 6212阅读
  • 4回复

[讨论]QList越界问题 [复制链接]

上一主题 下一主题
离线niuxiaodong
 
只看楼主 倒序阅读 楼主  发表于: 2011-09-03
关键词: Qlist越界
我在类里定义了一个QList<CBall*> ball_list;
和一个变量 int  ball_remain;
draw函数里
CBall *ball=new CBall(1,2);
CBall *ball2=new CBall(2,3);
ball_list.push_back(ball);
ball_list.push_back(ball2);
ball_list.at(0)->draw();     //这个事我CBall类里的函数

ball_list.at(1->draw();
现在一点问题没有,绘制出来两个球
然后我在构造函数里
ball_remain=2;
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(advanceGears()));
timer->start(20);
然后我在advanceGears()函数里
ball_remain++;
还是没问题;
然后我在advanceGears()函数里加了一句
ball_list.at(0)->draw();
然后编译可以通过,运行时报错,ASSERT failure in QList<T>::at: "index out of range", file ..\..\Qt\include/QtCore/../../src/corelib/tools/qlist.h, line 456,这表示数组越界,这是这么回事
离线niuxiaodong
只看该作者 1楼 发表于: 2011-09-03
十万火急
离线xiumingjun

只看该作者 2楼 发表于: 2011-11-02
离线zhy282289
只看该作者 3楼 发表于: 2011-11-02
越界就是越界,使用前看下能不能取就行了
为什么我脸这么胖~
离线jdwx

只看该作者 4楼 发表于: 2011-11-02
引用第3楼zhy282289于2011-11-02 18:37发表的  :
越界就是越界,使用前看下能不能取就行了[表情]  

楼上说的对,使用之前必须检查能不能取到值。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个