Ошибка сегментации при передаче структуры в unordered_map - PullRequest
1 голос
/ 01 марта 2012

Привет, я столкнулся с ошибкой пару дней назад. Код не такой, но похож на тот, что указан ниже:

     struct AB{

          vector<int> * temp;

          AB(){
              temp = new vector<int>;

          }

          AB(const AB &other){

                     temp = new vector<int> 
                    //and I am memberwise copying other.temp to temp. (Not shown here)
          }
         ~AB(){
                      delete AB;
          }
      };    

И в основном классе я делаю это

      unordered_map<int, AB> mapOfAB;
      mapOfAB[0].temp->push_back(1);

Это вызывает ошибку сегментации, но если я задаю temp как стековую (не динамическую) переменную, она работает нормально Я надеюсь, что я достаточно конкретен.

Заранее спасибо

1 Ответ

3 голосов
/ 01 марта 2012

У вас есть необработанный указатель, и у вас нет оператора присваивания. Вы нарушили Правило Трех .

...