当我创建一个有点太大的数组时出现分段错误

Segmentation fault when I create a little too big array

本文关键字:数组 错误 分段 创建 一个      更新时间:2023-10-16

我的代码中有一个C++对象,如下所示:

class Object
{
public : 
float a, b, c;
}

当我创建这样的二维数组时,它工作得很好:

Object myArray [500][500];

当我这样做的时候,我会遇到分割错误:

Object myArray [1000][1000];

是什么导致了分割错误,我该如何消除它?谢谢

要创建一个巨大的数组,需要将其设置为全局数组。局部变量有大小限制。另一种解决方案是动态分配阵列。

Stack的大小有限,在现代机器上通常为1到10MB。您的阵列至少需要16 MB。

最好的情况是在堆上分配数组。

很可能您已经超过了堆栈大小,因此您需要使用动态数组(因此是堆)或在编译器设置中增加堆栈大小。