gpt4 book ai didi

c++ - 声明数组导致错误

转载 作者:可可西里 更新时间:2023-11-01 17:22:55 25 4
gpt4 key购买 nike

我无法在 codeblock ide 中执行下面的代码,但是如果我全局声明数组,那么我可以执行它。
有什么限制全局声明时和局部声明时的数组大小? 在 spoj、codechef 等竞争性编程竞赛中声明数组大小的经验法则是什么?
此外,如果错误是由于代码块 ide。那我该如何纠正呢?

#include<iostream>

using namespace std;


int main()
{
int arr[999999];

return 0;
}

最佳答案

这是不允许的,因为它会向 main() 的堆栈帧添加总共 999999*sizeof(int) 字节(在典型的 64 位环境中为 7.6MiB),这是一个非常大的数量单个堆栈帧的内存。

堆栈帧的最大大小取决于您的实现和环境设置。

如果您确实需要此内存,您应该静态(使用静态变量)或动态定位它,具体取决于您是否需要在程序中多次调用 main()。如果您满足于动态内存,请考虑改用 vector 并使用 std::vector<int> arr(999999);为了声明一个初始大小设置为 999999 的 vector 。

关于c++ - 声明数组导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13494228/

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