访问 MultiDim 数组给出段错误 C++
Accessing MultiDim Array gives Seg Fault C++
我正在练习 problem,我必须在两个给定整数之间找到 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
段错误发生在 i = 30015
最后输出:
i :30014 pf[i] 3 0
i :
这是内存问题吗?静态存储不够用吗?
对于 30030 和更多值,它有 prime_factor_nos[30030] = 6,这就是它导致运行时错误的原因。
我正在练习 problem,我必须在两个给定整数之间找到 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
段错误发生在 i = 30015
最后输出:
i :30014 pf[i] 3 0
i :
这是内存问题吗?静态存储不够用吗?
对于 30030 和更多值,它有 prime_factor_nos[30030] = 6,这就是它导致运行时错误的原因。