Это, вероятно, глупая ошибка, но это заставляет меня гайки пытаться ее исправить.Вектор push_back Нарушение прав доступа
У меня есть-структуру:
struct MarkerData
{
int pattId;
unsigned short boneId;
Ogre::Matrix4 transToBone;
Ogre::Vector3 translation;
Ogre::Quaternion orientation;
MarkerData(int p_id, unsigned short b_id, Ogre::Matrix4 trans)
{
pattId = p_id;
boneId = b_id;
transToBone = trans;
}
};
и класс:
class TrackingSystem
{
public:
void addMarker(int pattId, unsigned short boneId, Ogre::Matrix4 transToBone);
private:
std::vector <MarkerData> mMarkers;
};
Теперь в методе addMarker:
void TrackingSystem::addMarker(int pattId, unsigned short boneId, Ogre::Matrix4 transToBone)
{
mMarkers.push_back(MarkerData(pattId,boneId,transToBone));
}
Это push_back вызывает нарушение прав доступа «Необработанное исключение на 0x00471679 в OgreAR.exe: 0xC0000005: место чтения нарушения доступа 0x00000018. ".
В качестве теста, я попытался это:
void TrackingSystem::addMarker(int pattId, unsigned short boneId, Ogre::Matrix4 transToBone)
{
std::vector <MarkerData> test;
test.push_back(MarkerData(pattId,boneId,transToBone));
}
Это прекрасно работает.
Что я делаю неправильно ?! Благодаря!
Можете ли вы поймать исключение и выяснить, что это такое? Это может привести к правильному ответу. – Starkey