Forum: PC-Programmierung Bekomme dauernd eine Fehlermeldung in MFC


von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute ich bins mal wieder,
ich brauch wieder eure Hilfe in meinem beliebten Spiel Schiffe
versenken.
Ich bekomme in einer C++ Programmierung dauernd eine Fehlermeldung.
Könnt ihr mir vielleicht sagen was sie bedeutet? Sie taucht immer auf
wenn ich das Programm starte und eine bestimmte Taste drücke.
Die Fehelermeldung ist angehängt.

Danke im vorraus

Alex

von Rufus T. Firefly (Gast)


Lesenswert?

Lass' Dein Programm im Debugger laufen.

Die Fehlermeldung bedeutet, daß Du einen nicht initialisierten Pointer
dereferenzierst.

Beispiel:

char* p;

printf("Das ist mein Text %s\n", p);


Nicht initialisierte Variablen werden zur leichteren Fehlersuche mit
0xcccccccc initialisiert, so daß die Verwendung solcher Variablen
aufgrund des abstrusen Wertes offensichtlich wird.

Lass' Dein Programm im Debugger laufen.

Sagte ich bereits, daß Du Dein Programm im Debugger laufen lassen
solltest?

von faust (Gast)


Lesenswert?

Funktioniert denn schon der Taschenrechner?

von Rufus T. Firefly (Gast)


Lesenswert?

Wie sollte er?

von faust (Gast)


Lesenswert?

weiß nicht ... :-~ (verwirrtes smily)

von Alex (Gast)


Lesenswert?

Mein Taschenrechner funktioniert fast. ;o(
Komm blos nicht weiter. Muss nur schauen wie ich es mache das er die
erste Zahl die eingegeben wurde in einen Speicher schreibt und dann
später wieder gibt.

Mein Ausbilder hat gemeint ich soll erst einmal das Spiel mach. Versuch
aber beides parrallel zu schreiben.

Gruß Alex

P.s. wie kann ich den Quelltext änder wenn er im Debugger läuft? Ich
weiß wie ich es mache das er im Debugger läuft aber was ist der
Debugger. Sowas wie ein abgesicherter Modus?

von Rufus T. Firefly (Gast)


Lesenswert?

"was ist der Debugger. Sowas wie ein abgesicherter Modus?"

Schluck. Hast Du wirklich gerade diese Frage gestellt?

Frag' mal Deinen Ausbilder. Wenn der die Frage nicht beantworten kann,
geh zu dessen Vorgesetzten.

von faust (Gast)


Lesenswert?

Im debugger kannst du dir dein Programm "im Betrieb" ansehen und dabei
variablen, Speicher, Register ... ansehen.
Da gibts verschiedene Möglichkeiten: Einzelschritte, Step over (wenn du
über einen Funktionsaufruf drüberwegspringen möchtest) oder Run, der
entweder bis zum Ende durchläuft (für mein Verständnis sinnlos, um
einen Fehler im Code zu suchen) oder am nächsten Breakpoint anhält (was
wär ich doch ohne sie ;-) ).

von faust (Gast)


Lesenswert?

na, schon den debugger gequält oder sogar ein paar schiffe versenkt?

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Also ich bin jetzt so weit das er mir mit einem Bild anzeigt ob ich ein
SChiff getroffen habe oder nicht. Ich ahbe jetzt nur ein Problem. Er
zeigt mir diese Fehlermeldung (is im Anhang).

Ich habe auch in dieser Zeile nachgeschaut da steht aber nix. Nur ein
else aber keine Bedingung.

Ich versteh die Welt nicht mehr. Nichts funktioniert so wie ich es
will.

Danke Alex

von Matthias (Gast)


Lesenswert?

Hi

das ist (vermutlich) immer noch ein Speicherproblem. Du schreibst
irgendwo über ein Array hinaus. Die Debug-Version von Visual-C++ prüft
auf exakte einhaltung von Arraygrenzen und wirft eine assertion wenn
die nicht eingehalten werden. Mittels Call-Stack bekommet man
üblicherweise heraus wo das Problem auftritt.

Du solltest dir erstmal die Grundzüge der Programmierung klarmachen und
was wann und warum passiert. Sonst stehst du immer wieder vor solchen
Problemen.

Matthias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.