Во время отладки я получаю "программа получила сигнал sigtrap trap / breakpoint trap c ++" - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь вставить объект локального класса в std :: vector внутри цикла for с помощью push_back. Чтобы избежать проблемы мелкого копирования, у меня есть конструктор копирования, который будет копировать переменные-члены. Мой класс содержит один массив с плавающей точкой. При попытке скопировать значения этого массива с плавающей запятой с помощью конструктора копирования я получаю сообщение «Программа получила сигнал трассировки / прерывания sigtrap», и я не могу отладить или выполнить код.

Я использую Dev c ++ 5.11. Я почти уверен, что из-за массива с плавающей точкой, который я пытаюсь скопировать в конструкторе копирования, возникает эта проблема. Но я не могу понять, что я делаю неправильно. Любая помощь будет оценена.

       // My loop 
       for(int i=0; (i+2)<m_veclVertCoord.size(); i=i+3)
        {
             Vert obj;
             obj.m_iIndex = ict;//index of verts
             obj.m_fXyz[0] = m_veclVertCoord[i];
             obj.m_fXyz[1] = m_veclVertCoord[i+1];
             obj.m_fXyz[2] = m_veclVertCoord[i+2];
             m_vecVerts.push_back(obj);
             ict++;
       }

// Копировать конструктор, который я использую

       Vert::Vert(const Vert &ver)
      {
        m_fXyz[0] = ver.m_fXyz[0];// this float array is causing theissue
        m_fXyz[1] = ver.m_fXyz[1];
        m_fXyz[2] = ver.m_fXyz[2];
        m_iIndex = ver.m_iIndex;
      }
...