gpt4 book ai didi

c - 段错误: Core Dumped while initializing large size arrays

转载 作者:行者123 更新时间:2023-11-30 18:56:42 25 4
gpt4 key购买 nike

在 Linux 上,使用 gcc 作为编译器,我遇到了臭名昭著的核心转储错误。全局声明:

#define MAX_N 10000  


double cost[MAX_N][MAX_N]={0};
int stack[MAX_N];
int visited[MAX_N];

错误发生的位置(一旦我注释掉这些行,错误就会消失):

for(q=0;q<5;++q) 
{
visited[q]=0;
stack[q]=0;
}

这段代码位于一个被调用超过 10,000 次的函数内。所以每次调用该函数时,都需要进行初始化!我尝试过使用 memset,但这似乎也没有帮助!

最佳答案

我的猜测:

不管 @ivg 怎么说,10000 实际上是一个很大的尺寸。您的声明将至少占用 760Mb,这很容易触及您的硬限制,尤其是在运行时增加堆栈大小时(您通常在函数内部调用函数时执行的操作)。

我会尝试将该声明移动到堆内存空间(即调用 malloc/free)。

关于c - 段错误: Core Dumped while initializing large size arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23607907/

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