程序出现运行时错误
问题描述
#include <algorithm>#include <iostream>#include <cmath>#include <vector>using namespace std;int countPrimes(int n) { if (n <= 2)return 0; vector<int> arr(n, 0); for (int i = 2; i <= sqrt(n); ++i) {if (!arr[i]) for (int j = i * i; j <= n; j += i) {arr[j] = 1; } } cout << arr[2] << endl; int j = 0; for (int i = 2; i <= n; ++i) {if (!arr[i]){ arr[j++] = i;} } cout << "j" << j << endl; int l = 0, r = j - 1; while (l <= r) {int m = (l + r) >> 1;cout << m << endl;cout << "arr[m]" << arr[m] << "n - 1" << n - 1 << endl;if (arr[m] == n - 1){ l = r = m; return l + 1;}else if (arr[m] < n - 1){ l = m + 1;}else r = m - 1;cout << "l = " << l << "r= " << r << endl;cout << "m=" << m << endl; } cout << l << endl; return 0;}int main(){ cout << countPrimes(6) << endl; return 0;}
在程序中加断点,发现运行到return l + 1处时报错,报错信息如下
在VSCODE中还会弹出一个窗口,提示源 源未知 不可用
请问问题出在哪里了?谢谢了
问题解答
回答1:通常win平台非预期的sigtrap都是heap corruption。再看你的代码,第十六行arr[j] = 1; 明显有invalid write。所以vector arr(n, 0);的n应该改大一点,比如n+1。
相关文章:
1. javascript - 在 model里定义的 引用表模型时,model为undefined。2. css3 - 这个右下角折角用css怎么画出来?3. javascript - canvas 裁剪空白区域4. atom开始输入!然后按tab只有空格出现没有html格式出现5. css3 - 没明白盒子的height随width的变化这段css是怎样实现的?6. java - 根据月份查询多个表里的内容怎么实现好?7. apache - 想把之前写的单机版 windows 软件改成网络版,让每个用户可以注册并登录。类似 qq 的登陆,怎么架设服务器呢?8. dockerfile - [docker build image失败- npm install]9. python3.x - c++调用python310. android - 课程表点击后浮动后边透明可以左右滑动的界面是什么?
