Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

PD

unregistriert

1

02.11.2004, 19:03

Laufzeitfehler mit einem string

Habe folgendes Problem. Mein Spielchen was ich grad progge hat eine Hauptklasse CMain mit 3 Methoden:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
class CMain {
private:
    CObjectManager cObjm;
    bool bRunning; // Für die hauptschleife, läuft das Spiel noch?

    std::string sDest;
    BITMAP *mouse;

public:
    void Initialize();
    void Mainloop();
    void Shutdown();
};


So, hab die Header jetzt mal weggelassen, aber welche ich so drin hab sollte klar sein ^^

So, nun bekommt ich aber jedesmal wenn ich sDest einen String zuweise (z.B. sDest = "Test") und das programm ausführe kommt ein Laufzeitfehler an dieser Stelle die in etwa so lautet (muss nich wörtlich stimmen, die Adressen erfinde ich grade *g* ;)):

Zitat

Die Anweisung in "0x4354363" verweist auf Speicher in "0x35463". Der Vorgang "written" konnte nicht auf dem Speicher ausgeführt werden.


Und natürlich mache ich das nur innerhalb der Methoden...

Hilfe :crying:

2

02.11.2004, 19:54

Das sind mir immer die liebsten Fehler ;D

Debugger anwerfen und durch den Code sappen. Schaun ob in std::string die richtigen Adressen enthalten sind und prüfen ob du nicht vorher irgendwo einen Fehler hast.

std::string ist eigentlich Bug frei. So das man davon ausgehen kann. Das vorher ein Fehler existiert. Z.B. über das ende eines Array geschrieben.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

PD

unregistriert

3

02.11.2004, 20:03

ok, muss gestehen das ich keine Ahnung vom Debuggen habe ^^ Muss mir mal vom VisualC++ Debugger irgendwo nen tut suchen wo das erklärt wird ^^

Aber grundsätzlich isses seltsam, weil wenn ich die Zuweisung des strings auskommentiere funktioniert alles fehlerfrei.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

02.11.2004, 20:07

Einfach vor dme kritischen teil ne anweisung suchen und davor mit F9 einen Haltepunkt setzen. Dann stopt er dort. Dann von da aus mit F10 oder F11 schrittweise weitergehen.

Werbeanzeige