這可能是一個愚蠢的錯誤,但它驅使我嘗試修復它。向量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;
}
};
和A類:
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會導致訪問衝突「未處理的異常在OgreAR.exe 0x00471679: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 2010-10-01 14:55:04