Why do I get a segmentation fault for this?

  c++

I just want to create a simple C++ struct that has an int index and an int grayValue .The function is given the vector with the gray values. When I try to compile it I get a segmentation fault, does anyone know why? (didn’t sort the vector) Thank you.

vector<gray> createStruct( vector<int> grayValues)
{
   vector <gray> grayStruct;
     for (int i = 0; i<grayValues.size();i++)
      {
         grayStruct[i].originalIndex= i;
         grayStruct[i].grayValue= grayValues[i];
     }

     return grayStruct;
}



int main() {

  vector <int> grayVals={411,21,78,23};
  vector <gray> grayStruct=createStruct(grayVals);
//  sort(grayStruct);

  for (int i = 0; i < grayStruct.size(); i++)
      {cout << grayStruct[i].originalIndex<<' '<<grayStruct[i].grayValue;
      cout<<endl;
    }
return 0;

}

Source: Windows Questions C++

LEAVE A COMMENT