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

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

21

17.02.2012, 16:04

Stimmt, vielen Dank! Wegen dem ++x geh? Wärs x++ oder nicht <= sondern nur < passts...:dash:
Aber warum funktioniert es dann in der Debug-Version?
Wie kann ich das selber herausfinden (im Debugger wahrscheinlich), weil für mich war das sehr komisch und nirgends verständlich warum es nicht funktioniert...?

Mich wundert, dass dir im Debug nicht das hier passiert ist: Heap beschädigung bei Dekonstruktor Aufruf

Wann Windows so ein Problem, wie du es verursacht hast, direkt bemerkt und wann nicht, das ist in der Tat etwas kompliziert. Dabei geht es darum, wie Windows Anwendugnen Speicher zuteilen kann, und das geht in Blöcken von 4kb. Deshalb muss so etwas wie der Crash, den du gesehen hast, nicht unbedingt immer auftreten.

Ein Beispiel:
Du hast ein Array mit der Größe von 10 Bytes, es liegt grad am Ende von einem 4kb Block und dahinter folgt kein weiterer 4kb Block. Du schreibst auf 11. Byte - Windows beendet dein Programm.

Ein weiteres Beispiel:
Du hast wieder ein 10 Byte großes Array, das am Anfang eines 4kb Blocks liegt. Du schreibst auf 11. Byte und Windows kriegt davon nichts mit.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

Geheim

Treue Seele

  • »Geheim« ist der Autor dieses Themas

Beiträge: 202

Wohnort: Salzburg

Beruf: Schüler

  • Private Nachricht senden

22

17.02.2012, 19:19

Ahh ok, mit dem Speicher muss ich echt aufpassen :whistling:
Danke, klappt jetz so wie es sollte ;)