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

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

11

06.07.2006, 17:56

Tja im Debug Modus überprüft er eben, ob die Vars vorher einen vernünftigen Wert bekommen. Im Release kümmert in das nicht. Da bekommt man es erst mit, wenn es knallt :)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

12

06.07.2006, 18:02

Zitat von »"spacegaier"«

Habs gelöst: Die Variabeln wurden nicht richtig initialisiert -> nix da hat wie (fast) immer recht.

Doch kann mir noch jemand erklären, warum der Fehler vom Anfang nur im Debug-Modus kam. Ich glaube der ist etwas pingeliger, aber was macht der genau anders als der Release-Modus?

mfg spacegaier

Der Debug-Modus prüft zur Laufzeit, ob nicht initialisierte Variablen verwendet werden (wie schon gesagt). Das soll dir helfen, Fehler aufzuspüren. Anders als z.B. bei Java haben die integralen Datentypen in C++ nämlich keinen Standardwert. Sie haben einfach gerade den Wert, der in ihrer Speicheradresse liegt, also quasi zufällig (und das kann ja nicht das sein, was du willst). Das bringt einen kleinen Geschwindigkeitsvorteil mit sich.
Natürlich sind solche Laufzeitüberprüfungen nicht gut für die Performance, deshalb finden sie im Release-Build auch nicht statt.
Wenn du deiner smallrect-Klasse einen Standardkonstruktor gibst und in diesem den einzelnen Member-Variablen Standardwerte zuweist, dann hast du dieses Problem nicht.

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

13

06.07.2006, 18:14

Okay, wer ich machen. Danke für die Antwort.

Anonymous

unregistriert

14

06.07.2006, 18:14

Zitat von »"spacegaier"«

Habs gelöst: Die Variabeln wurden nicht richtig initialisiert -> nix da hat wie (fast) immer recht.
Yes Yes Yes!

*plopp* - *bierchen aufmach*

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

15

06.07.2006, 18:16

Hasch dir's redlich verdient. Danke nochmal. :)

Werbeanzeige