当我尝试在程序中调用类函数时,我遇到了分段错误。在我的程序中,矩阵grid[][]
快速变化,我希望能够在某个时间保存网格的“图像”,以便我可以将网格的更高版本与此参考进行比较。因此,当我尝试将grid[][]
的“图像”保存到参考矩阵时,我只需使用for循环将所有值复制到它。我在程序中做了几次测试,似乎在getreference
函数期间出现了分段错误。
class lattice
{
public:
lattice(){} // Constructor
~lattice(){} // Destructor
void getgrid(){...}
//Other functions...
void getreference()
{
for(int a = 0; a<SIZEX; a++)
{
for(int b = 0; a<SIZEY; b++)
{
reference[a][b] = grid[a][b];
}
}
}
private:
short grid[SIZEX][SIZEY];
short reference[SIZEX][SIZEY];
}
答案 0 :(得分:2)
for(int b = 0; a < SIZEY; b++)
应该是
for(int b = 0; b < SIZEY; b++)
这就是你遇到分段错误的原因。
答案 1 :(得分:2)
for(int a = 0; a<SIZEX; a++)
{
for(int b = 0; a<SIZEY; b++) //??
{
reference[a][b] = grid[a][b];
}
}
将其更改为for(int b = 0; b < SIZEY; b++)