Zugriffsverletzung bei vector.begin()
-
Hi,
die Bomben meines Bomberman-Clones verwalte ich mit
std::vector<CBomb*> bombs;Jetzt lege ich eine Bombe:
bombs.insert(bombs.begin(), new CBomb(x, y));bombs.begin() verursacht aber folgende Fehlermeldung:
"Unbehandelte Ausnahme bei 0x0053... in game.exe: 0xC...: Zugriffsverletzung-Leseposition 0x00...10c."
Ich kann mir diese Fehlermeldung nicht erklären, normalerweise krieg ich sowas nur wenn ich eine Klasse noch nicht angelegt habe. Das ist hier jedoch ausgeschlossen, siehe oberer Codeausschnitt.Kann mir jemand sagen was ich falsch mache?
Dass der Vektor bombs leer ist, daran kann es nicht liegen oder?mfg. Tubos
-
Ich glaub schon. Wenn der Vektor leer ist müssten der begin und der end iterator ins Nirwana zeigen. Benutz statt insert doch einfach push_front.
-
Eine Methode push_front gibt es nicht.
push_back funktioniert auch nicht. push_back ruft intern size() auf, und bei diesem Aufruf gibt es wieder einen Fehler.
-
Tubos schrieb:
push_back funktioniert auch nicht. push_back ruft intern size() auf, und bei diesem Aufruf gibt es wieder einen Fehler.
push_back funktioniert immer.
außer natürlich du machst verwegene sachen, wie daß dein vector ein member einer klasse ist und das aktuelle objekt nicht existiert und damit dein vector auch nicht. also schau mal this an, ob zufällig this==0 ist.
-
Verdammt... das gibts aber jetzt nicht... this war tatsächlich 0

Danke, funktioniert wieder alles.