有没有方法可以增加数组的记忆?和相关问题

Is there way to increase memory of an array? and Related issue

本文关键字:记忆 问题 数组 有方法 增加数 增加      更新时间:2023-10-16

简单问题:我的代码块可以编译以下代码并运行良好:

int a[2000000];

我的代码块可以编译下面的代码,但是我的程序在之后立即崩溃:

int a[2000000];
int b[2000000];

1)原因是什么,为什么?(我的RAM 16 GB !!这只是0.3MB,所以问题是什么?)

2)如何修复或使用替代方法?(但是我需要创建很多数组)

3)是否可以增加数组的内存?


相关问题(我认为是这样):

我的代码块能够编译下面的代码并运行良好:

unsigned long int a=100000000000;

我的代码块可以编译下面的代码,但是我的程序在我输入相同的数字(100000000000)后立即崩溃了:

unsigned long int a;
 cin>>a;

该怎么办?

int a[2000000];

这溢出了您的堆栈限制。您可以改用std::vector<int> a(2000000);,它将使用动态存储分配(理论上是无限的)。

编译的可执行文件具有堆栈限制

(MSVC文档)

没有此选项,堆栈大小默认为1 MB。

您的代码溢出了堆栈空间

int a[2000000];

堆栈是一种宝贵的资源,如果您需要分配大量内存,请考虑在堆中进行。

cfr。堆栈和堆在哪里?