Speicherzugriffsfehler bei Zugriff auf Membervariable...
-
Ich habe mal wieder ein Problem...
Eine nicht behandelte Ausnahme des Typs "System.AccessViolationException" ist in programm.exe aufgetreten. Zusätzliche Informationen: Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.Die entsprechende Quelltextzeile, bei der dieser Fehler kommt ist folgende:
return this->m_vData[y * (this->m_iMapWidth) + x];Sie gehört zu einer Funktion, die ein 2D-Array in einem std::vector gespeichert hat. Durch ausprobieren habe ich jetzt herausgefunden, dass es nicht an dieser Zeile, sondern allegemein am Zugriff auf Klassenmember via this-Operator liegt. (Aber auch ohne gehts nicht :D).
Hat jemand eine Idee, wie ich dieses Problem lösen könnte?
Gruß, Birne
-
das ist normalerweise der Fall wenn this==NULL. oder seltener, wenn das Objekt scho deleted wurde.
-
Aber wie kommt es, dass this auf NULL gesetzt wurde?
-
Birne94 schrieb:
Aber wie kommt es, dass this auf NULL gesetzt wurde?
Es wurd enicht aufg NULL gesetzt. Du benutzt einen NULL Zeiger zum Zigriff auf das Object:
CMyObject *pMyObject = NULL; pMyObject->CrashIt(); // ;)
-
Ja, nur ist das Problem, dass das Objekt mMn. korrekt per new-Operator erstelltwurde:
this->m_pMap = new Map( this->m_pMapImage, Graphics::inst().getBackBuffer(), this->m_pWalkData);
-
okay, es hat sich geklärt, ich hatte irgendwo doch einen Zeiger noch nicht initialisiert

Trotzdem Danke...
-
Birne94 schrieb:
okay, es hat sich geklärt, ich hatte irgendwo doch einen Zeiger noch nicht initialisiert

Trotzdem Danke...
Ätsch.

(Aber danke für die Rückmeldung.)