gpt4 book ai didi

c - 声明大数组时出现堆栈溢出异常

转载 作者:行者123 更新时间:2023-11-30 17:33:28 25 4
gpt4 key购买 nike

以下代码为我生成堆栈溢出错误

int main(int argc, char* argv[])
{
int sieve[2000000];
return 0;
}

我该如何解决这个问题?我正在使用 Turbo C++,但想将我的代码保留在 C 中

编辑:

谢谢你的建议。上面的代码只是举例,我实际上是在函数中声明数组,而不是在 sub main 中。另外,我需要将数组初始化为零,因此当我在 google 上搜索 malloc 时,我发现 calloc 非常适合我的目的。

与在堆栈上分配相比,Malloc/calloc 还具有允许我使用变量声明大小的优势。

最佳答案

您的数组太大,无法放入堆栈,请考虑使用堆:

int *sieve = malloc(2000000 * sizeof(*sieve));

如果您确实想更改堆栈大小,take a look at this document.

提示: - 当不再需要动态分配的内存时,不要忘记释放它。

关于c - 声明大数组时出现堆栈溢出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23752966/

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