c++ - 超过 120000 个元素的数组崩溃

标签 c++ arrays

<分区>

当我这样做时:

vector<double> myVect(120000000, 0);

我可以让 vector 看起来像我想要的那样拥有尽可能多的元素。但是,当我这样做时:

double myArray[120000];

在我的程序崩溃之前,我被限制在大约 120000-130000 个元素。是不是出了什么问题,或者数组真的有这么有限吗?

最佳答案

数组本身不限于任何固定大小,但您在自动存储(通常称为“堆栈”)中分配的数组仅限于堆栈的大小。当您在静态存储中分配大型数组时,您可以创建更大的数组。动态分配也是如此:无论您可以在不触发内存溢出的情况下分配多大的 vector ,您都可以使用 new 运算符创建一个相同大小的数组。

例如,您可以在不触发堆栈溢出的情况下执行此操作:

static double myArray[120000000]; // static memory area

或者这个:

double *myArray = new double[120000000]; // dynamic memory area

关于c++ - 超过 120000 个元素的数组崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18244551/

相关文章:

c++ - 在 xcode 10 上找不到 stdlibc++ header 错误

php - Array_splice 充当 array_slice?

javascript - jQuery 将复选框选择转换为数组

java - Java 中数组中可以有多种数据类型吗?

python - Numpy 逆掩码

android - 我可以在Android上安装Linux开发工具吗?

c++ - C++ 编译器可以优化 "if"循环内的 "for"语句吗?

c++ - const char * 指向同一内存位置

c++ - FindFirstVolume 不返回 EFI 系统分区

c - 循环遍历其他源文件中定义的数组时出现问题