分段错误(SIGSEGV)。链接到代码由于输入用于存储结构向量的值,该代码给出了分割错误错误。
#include<bits/stdc++.h>
using namespace std;
struct s{
int a;
int d;
};
int main(){
int n;
cin>>n;
vector<s> v;
for(int i=0;i<n;i++){
cin>>v[i].a;
}
for(int i=0;i<n;i++){
cin>>v[i].d;
}
return 0;
}
输入为:
6
900 940 950 1100 1500 1800
910 1200 1120 1130 1900 2000
问题是您正在访问其边界之外的向量。向量为空,但v[i]
尝试访问不存在的向量元素。因此,程序的行为是未定义的。
我怀疑您可能打算使用将元素计数作为参数的向量构造函数。
这是有效的代码。我在构造向量时指定它的大小。
vector<s> v(n);
编译代码:
#include<bits/stdc++.h>
using namespace std;
struct s{
int a;
int d;
};
int main(){
int n;
cin>>n;
vector<s> v(n);
for(int i=0;i<n;i++){
cin>>v[i].a;
}
for(int i=0;i<n;i++){
cin>>v[i].d;
}
return 0;
}