www.mikrocontroller.net

Forum: PC-Programmierung Bekomme dauernd eine Fehlermeldung in MFC


Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: faust (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert denn schon der Taschenrechner?

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sollte er?

Autor: faust (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weiß nicht ... :-~ (verwirrtes smily)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: faust (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-) ).

Autor: faust (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na, schon den debugger gequält oder sogar ein paar schiffe versenkt?

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.