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