Run-Time Check Failure #0
-
Hi,
ich bin gerade dabei, ein kleines Jump'n'Run zu programmieren. Ich kann noch nicht recht viel, mache das Spiel abr auch nur zum Lernen.
Jetzt kommt aber plötzlich ein ziemlich merkwürdier Fehler, den ich mir nicht erklären kann:
http://planschkuh.pl.ohost.de/error3.jpg
Ihr seht ja den QC im Hintergrund. Die Klasse CWater ist von CTile abgeleitet:#ifndef TILE_HPP #define TILE_HPP #include "Sprite.hpp" class CTile { public: void render(); void setLocation(int x, int y); CTile(); ~CTile(); protected: CSprite *sprite; bool isSolid; }; #endif //-->Tile.cpp #include "Tile.hpp" CTile::CTile() { sprite = NULL; } CTile::~CTile() { if(sprite != NULL) { delete(sprite); sprite = NULL; } } void CTile::render() { sprite->render(); } void CTile::setLocation(int x, int y) { sprite->setLocation(x,y); }Hoffe, es kann jemand helfen.
BTW: Noch mehr gibts hier:
http://planschkuh.pl.ohost.de/error1.jpg
http://planschkuh.pl.ohost.de/error2.jpg
-
was genau fuer eine hilfe moechtest du? du bist doch im debugger, kannst also rausfinden an welcher stelle genau das passiert und uns die zeigen, dann koennten wir vermuten weshalb du den stack kaputtschreibst, aber so?
ich denke mir mal in water ohne die load(water.bmp)-zeile klappt es problemlos?
-
Der Debugger sagt lediglich, dass sprite sowie isSolid NULL bzw, "???" sind.
Könnte aber eher am Aufruf liegen. Hab ich nur gerade nicht so drauf geachtet

void CMap::load(string filename) { xml = createIrrXMLReader(filename.c_str()); if(xml == NULL) g_pFramework->makeError("Map-File cannot be found."); // Datei bis zum Ende parsen int row = 0; int col = 0; while(xml->read()) { switch(xml->getNodeType()) { case(EXN_ELEMENT): { if(!strcmp("row", xml->getNodeName())) { row++; break; } if(!strcmp("water", xml->getNodeName())) { tiles[col][row] = new CWater; col++; break; } }break; } } }tiles ist ein 2D-Array aus CTiles.
Es sollte eigentlich funktionieren^^
Wenn ich die Map nicht lade, bleibt immernoch error1.Der Debugger zeigt zwar an, dass alle cols ausgelesen werden, aber die rows eben nicht.
Nach einer kleinen Veränderung zeigt der Debugger das an:
http://planschkuh.pl.ohost.de/error4.jpgHm, jedes dritte Tile ist Mist. Aber warum?
-
planschkuh schrieb:
...
falls du schonmal was von asserts gehoert hast, benutze sie vor zeile 25 um wenigstens zu pruefen dass ob du alles zerschiesst.