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
Na mit dem ganzen unsicheren Gefrickel ist das ja auch kein Wunder. Benutze Container wie vector und string, smartpointer und gucke dir size_t sowie nullptr an. Halte dich bloß von solchen 'Hilfsmakros' fern die brauchst du bei genannten Dingen eh nicht.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Klar, aber erst beim ZWEITEN Aufruf, wenn das Problem auftritt. Du sollst ja beim ersten *und* beim zweiten anhalten, um zu sehen, wieso es doppelt gelöscht wird und woher die Aufrufe stammen. Wahlweise musst du eben alle Stellen durchschauen, wo dieses Delete benutzt wird, ohne dass dabei der... globale (?) Zeiger auf nullptr gesetzt wird.Genau in der Zeile, wo dir der Debugger das Problem anzeigt.Wo soll ich den Breakpoint setzen?
Das Problem entsteht ja runtime u:d da bleibt das Programm sowieso stehen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (04.05.2017, 07:27)
(size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)
Bezüglich Mustercode: Auch David wird wohl zugeben, dass sein Code nicht mehr aktuellen Standards entspricht. Sonst hätte er std::vector (das ist *kein* Äquivalent zu Vector2D oder VectorD oder sowas, sondern eine Art dynamischer Array!), std::string, std::unique_ptr und weitere solcher Sachen verwendet. (size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)
Klar, aber erst beim ZWEITEN Aufruf, wenn das Problem auftritt. Du sollst ja beim ersten *und* beim zweiten anhalten, um zu sehen, wieso es doppelt gelöscht wird und woher die Aufrufe stammen. Wahlweise musst du eben alle Stellen durchschauen, wo dieses Delete benutzt wird, ohne dass dabei der... globale (?) Zeiger auf nullptr gesetzt wird.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Das ist wohl so, weil ich generell meine Meinungen präsentiere und nicht die aller anderen. Aber ich weiß, das muss man im Internet immer dazu sagen.Das ist nur seine persönliche Meinung.
Administrator
Bezüglich Mustercode: Auch David wird wohl zugeben, dass sein Code nicht mehr aktuellen Standards entspricht. Sonst hätte er std::vector (das ist *kein* Äquivalent zu Vector2D oder VectorD oder sowas, sondern eine Art dynamischer Array!), std::string, std::unique_ptr und weitere solcher Sachen verwendet. (size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)
Bezüglich Mustercode: Auch David wird wohl zugeben, dass sein Code nicht mehr aktuellen Standards entspricht. Sonst hätte er std::vector (das ist *kein* Äquivalent zu Vector2D oder VectorD oder sowas, sondern eine Art dynamischer Array!), std::string, std::unique_ptr und weitere solcher Sachen verwendet. (size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)
Absolut richtig - ich war jung, naiv und unerfahren ...
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ehrlich? Das Buch ist jetzt 14 Jahre alt (Das ist in IT-Jahren unfassbar lange, da gab's noch nicht mal Smartphones!) und er verdient damit noch genau wie viel? Ich finde sein fortdauernder Support für aktuelle Compiler-Versionen (und dieses Forum übrigens) ist mehr, als man von jedem anderen Buch je sehen wird oder überhaupt von ihm erwarten sollte. Jetzt auch noch zu verlangen, dass er den gesamten Code überarbeitet, ist aus meiner Sich schon reichlich unangebracht.
Niemand kann etwas dafür (auch wenn David sich sicher freut), dass du ein altes Buch gekauft hast und auf dieser dort nur als Beispiel (!) implementierten Engine arbeitest, um daraus ein Spiel zu machen. Modernere Bücher und Engines gibt's ja nun doch genug.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Patrick Z.« (05.05.2017, 16:21)
Werbeanzeige