在某仪器软件的开发过程时,运行程序时有时通过,有时通不过.
用断点调试,发现原来错误在这里:
int Pos[200][2];//100数量不够
...
for(int k=0;k<iNum;k++)
 {
  ....  
  if(k>=kMax)
  {
   Pos[numPos++][0] = ix;
   Pos[numPos-1][1] = iy;
  }
 }
....
int x = Pos[i][0];
int y = Pos[i][1];
....
当给Pos二维数组赋值时,numPos的值有时>200,有时<200,当大于200时,出现数组越界问题.而用动态数组可以解决该问题:
int (* Pos)[2] = new int[iNum][2];
....
最后用delete []Pos;即可.
不会出现分配的数组数量不够的问题.