gpt4 book ai didi

c++ - C/C++ 中大数组的运行时错误

转载 作者:行者123 更新时间:2023-11-30 20:04:37 32 4
gpt4 key购买 nike

我尝试在 C++ 中声明数组 (size=1,000,000),但它给了我一个运行时错误。

unsigned long long a[1000000];

但它允许这样做(size=100,000)

unsigned long long a[100000];

它再次给出以下运行时错误

  unsigned long long a[100000];
unsigned long long b[100000];

但我可以做同样的事情如下

unsigned long long* a = new unsigned long long[1000000];

谁能解释一下这其中的原因吗?

最佳答案

在 C++ 中,当你这样做时:

unsigned long long a[100000];

它从堆栈中分配内存。堆栈内存是有限的,因此您不能进行太大的分配。

当你这样做时:

unsigned long long* a = new unsigned long long[1000000];

它从堆中分配内存。堆分配可能很大。

有关堆栈和堆内存的更多信息位于 this堆栈溢出帖子。

关于c++ - C/C++ 中大数组的运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38941096/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com