Warm tip: This article is reproduced from serverfault.com, please click

其他-访问MultiDim阵列会产生Seg Fault C ++

(其他 - Accessing MultiDim Array gives Seg Fault C++)

发布于 2020-12-03 14:24:45

我正在做一个练习,其中我必须找到两个给定整数之间的K素数(具有K个不同素数的数)。我已经编码了解决方案,但是我遇到了分段错误,我查明了我得到分段错误的位置

table[prime_factor_nos[i]][i]++;

我创建了一个由N(1e5 + 2)大小为6的全局2D数组。但是,当我将N减少到1e4时,它可以按预期工作。现在,我只知道不正确的索引编制并没有给这个问题,而是给它留下了记忆。我也试过在循环时打印这些值,此值出现段错误

cout<<"i :"<<i<<" pf[i] "<<prime_factor_nos[i]<<" "<<table[prime_factor_nos[i]][i]<<nl

在i = 30015时发生段故障

最后输出:

i :30014 pf[i] 3 0
i :

这是内存问题吗?静态存储还不够吗?

代码

Questioner
Praful
Viewed
0
starboy_b 2020-12-03 22:58:42

对于30030和更多值,它的prime_factor_nos [30030] = 6,这就是导致运行时错误的原因。