我正在做一个练习题,我必须在两个给定整数之间找到 K 素数(具有 K 个不同素因子的数字)。我已经编写了解决方案,但是我遇到了分段错误,我已经确定了我遇到分段错误的位置
table[prime_factor_nos[i]][i]++;
我用 N(1e5 + 2) 创建了一个大小为 6 的全局二维数组。但是,当我将 N 减少到 1e4 时,它按预期工作。现在我只知道不正确的索引并没有给这个问题带来更多的记忆。我也尝试在循环时打印值,段错误发生在这个值
cout<<"i :"<<i<<" pf[i] "<<prime_factor_nos[i]<<" "<<table[prime_factor_nos[i]][i]<<nl
Seg 故障发生在 i = 30015
最后输出:
i :30014 pf[i] 3 0
i :
这是内存问题吗?静态存储还不够吗?