Segmentation Fault声明类私有变量

时间:2013-02-13 04:14:48

标签: c++ class segmentation-fault

当我尝试在程序中调用类函数时,我遇到了分段错误。在我的程序中,矩阵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];
}

2 个答案:

答案 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++)