我正在做一个练习题,其中我必须找到两个给定整数之间的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 :
这是内存问题吗?静态存储还不够吗?
对于30030和更多值,它的prime_factor_nos [30030] = 6,这就是导致运行时错误的原因。