Segmentation Fault (SIGSEGV) when getting data as input in the vector of struct

前端 未结 2 1865
旧时难觅i
旧时难觅i 2021-01-28 01:32

Segmentation Fault (SIGSEGV). Link to code The code gives Segmentation fault error due to the input taken to store the values for vector of struct.

#include<         


        
相关标签:
2条回答
  • 2021-01-28 02:19

    The problem is that you're accessing the vector outside of its bounds. The vector is empty, but v[i] tries to access elements of the vector that don't exist. Therefore the behaviour of the program is undefined.

    I suspect that you may have intended to use the vector's constructor that takes a count of elements as an argument.

    0 讨论(0)
  • 2021-01-28 02:31

    Here is the code that works. I specify the size of the vector when I construct it.

        vector<s> v(n);
    

    Compile code:

    #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;
    }
    
    0 讨论(0)
提交回复
热议问题