如何处理分段错误:11 c ++ osx

时间:2017-04-30 22:52:16

标签: c++ macos

我是编程的初学者,而且我遇到了一个我无法解释的错误。我已经彻底搜索了一个解决方案,我看到很多人都遇到了这个问题,但我还没能解决它。

我的程序只是创建一个双类型矩阵,我用两个嵌套循环填充。编译之后,我得到.exe文件,但是当我运行它时,终端说分段错误:11注销。

// Storage for the animals.
private List<Field> field;
private List<List<Animal>> animalsList;


public void place(Animal animal)
{
    Location location = animal.getLocation();
    animalsList = new ArrayList<List<Animal>>();
    field = new ArrayList<Animal>;
    field.add(Field(location.getRow(), location.getCol()));
    animalsList.add(field, animal);
}

有谁知道问题是什么?设置较低的N没有帮助。我认为这是一个非常基本的程序,很抱歉打扰你们,谢谢!

1 个答案:

答案 0 :(得分:1)

您尝试分配的数组太大而无法在堆栈上完成,并且您正在获得堆栈溢出。 要解决此问题,您可以使用:

double (*T)[NN] = new double[N][NN];

声明你的数组。