当我创建一个有点太大的数组时出现分段错误
Segmentation fault when I create a little too big array
我的代码中有一个C++对象,如下所示:
class Object
{
public :
float a, b, c;
}
当我创建这样的二维数组时,它工作得很好:
Object myArray [500][500];
当我这样做的时候,我会遇到分割错误:
Object myArray [1000][1000];
是什么导致了分割错误,我该如何消除它?谢谢
要创建一个巨大的数组,需要将其设置为全局数组。局部变量有大小限制。另一种解决方案是动态分配阵列。
Stack的大小有限,在现代机器上通常为1到10MB。您的阵列至少需要16 MB。
最好的情况是在堆上分配数组。
很可能您已经超过了堆栈大小,因此您需要使用动态数组(因此是堆)或在编译器设置中增加堆栈大小。
相关文章:
- 类动态数组错误
- 如何返回多维数组?错误C2440
- 数组错误(不允许类型不完整)
- C++ 将文件读取到数组错误:'operator>>'不匹配
- 不断增加的指针数组 错误:赋值中的类型不兼容
- 从文本文件读取 2D 数组错误
- 动态结构数组错误
- 旋转数组 - 错误
- 按字母顺序排序名称,数组错误
- 因为每个循环都读取数组错误
- 二维数组错误
- C 获取数组错误
- 编译时出现字符串数组错误
- c++2维指针类数组错误(使用openframework)
- C++数组错误
- C++上数组错误的大小
- C++数组错误:访问冲突读取位置0xC0000005
- c++2D数组错误
- C++:为“char [4]”数组错误获取太多初始值设定项
- 分段错误(核心转储)排序字符串数组错误