分割错误 (SIGSEGV) 获取数据作为结构向量中的输入时
Segmentation Fault (SIGSEGV) when getting data as input in the vector of struct
分段错误(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;
}
相关文章:
- 将结构向量排序为子组
- 访问存储在向量C++中的结构的多态成员
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 如何在 c++ 中创建结构向量的映射
- 带unique_ptr的结构向量
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 将 int 映射到 C++ 中的向量结构
- 如何在 c++ 中的向量结构中使用结构向量
- 无法将值存储到向量结构中
- 无法将.CSV文件读取为代表向量结构的类
- MPI,C,派生类型,向量结构
- 向量结构的打印成员
- 在 c++ 中对向量<结构 S> 进行二分搜索?
- 不需要删除向量<结构A*>
- 在C++中循环向量结构<string>
- 将字符串放入字符串的向量结构中
- 共享内存中的向量结构
- 我的向量结构没有像预期的那样迭代