日期:2014-05-16  浏览次数:20570 次

QT 段错误
我利用qt,想实现以下功能:自己计算点的坐标,画一个正弦曲线(蓝色),并且每计算一个点,都要把该点存储到一个数组里。为了显示描点的动态过程,我把每一个点在同一位置重复画了3000次,并同时计算所画的点的个数(包括重复的点),当点的个数大于某一值时,我把存在数组里的点,从第0个开始,逐个擦除。我选黑色背景,蓝色曲线,我没有找到擦除点的函数,就在擦除的位置画黑色点。  
我写的代码如下:  
int   xarray[600];   //存储横坐标的数组  
int   yarray[600];   //存储纵坐标的数组  
int   i,   j;  
int   flag=0,   z=0;  

for(   i=0;   i <600;   i++   )  
{  
      xarray[i]   =   i;  
      yarray[i]   =   300-(int)(100*sin(3.1415*i/180));   //把点的横坐标和纵坐标分别存放在数组里  

      for(   j=0;   j <3000;   j++   )  
      {  
        painter.setPen(   blue   );  
        painter.drawPoint(   xarray[i],   yarray[i]   );   //同一个点重复画3000次  
        flag++;   //标志位加1,既计算包括重复的点的个数  

        if(   flag> 9000   ){  

        painter.setPen(   black   );  
        painter.drawPoint(   xarray[z],   yarray[z]   );   //当所有点的个数大于9000时,开始从数组的第0个点开始擦除(画黑色)  
        z++;  
        }  
    }  
}  

我在make的时候没有报错误,并且生成了可执行文件,但是在执行的时候,我做出的界面显示了以下,马上消失,并且提示:段错误。  
请问各位大侠:这个错误提示是什么意思,这段代码应该怎么修改呢,谢谢!

------解决方案--------------------
数组越界,Z会大于600