【发布时间】:2020-03-04 01:01:35
【问题描述】:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n; //currently 7
while(n > 0)
{
for(int i = 0; i < n; i++)
{
if(i != 0)
{
//cout << i << "/" << n << endl;
float test = 1.0 * i / n;
vector<int> total(test);
sort(total.begin(), total.end());
cout << total[i] << endl;
}
}
n--;
}
}
编辑:粘贴我的整个代码。我只是有点困惑为什么它是一个分段错误。我检查了互联网,我认为这不是“访问释放的地址”、“不当使用 scanf”或未初始化的指针。
【问题讨论】:
-
当您使用调试器运行程序时,您看到了什么?这就是调试器的用途。如果您不知道如何使用调试器,这是一个学习如何使用它来一次运行您的程序、监控所有变量及其变化时的值以及分析程序的逻辑执行流程的好机会。了解如何使用调试器是每个 C++ 开发人员必备的技能,没有例外。在调试器的帮助下,您应该能够快速找到此程序以及您编写的所有未来程序中的所有错误,而无需向任何人寻求帮助。
-
向量声明需要在循环前,排序在循环后。
-
请缩进以便阅读
-
Sam 上面关于运行调试器的建议不仅仅是一个简单的评论。这是个好建议。你知道如何使用你的调试器吗?
-
在线您有onlinegdb.com,但您最好下载一份 Visual Studio Community 版本并在本地工作。总有一天,在线 IDE 将成为一个有效的选择,但现在……我记得有句老话是从靴子里倒出来的。
标签: c++ c++11 segmentation-fault