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

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

11

10.09.2008, 21:15

Zitat von »"Jonathan_Klein"«

ich bin mir sehr sicher, dass der Speicher gültig sein sollte.

:lol:

Naja. Ich habe einfach sehr lange gedebuggt und dann irgendwann inkonsitentes Verhalten festgestellt. Da ist irgendwo noch ein Zeiger rumgeschwirrt, der nicht mehr gültig war, aber dennoch gebraucht wurde.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

11.09.2008, 09:37

sind vielleicht dlls im spiel? kann es sein dass du speicher in einer dll anforderst und außerhalb der dll freigibst?
oder hast du vielleicht irgendwo einen debug/release versionsmix?

Anonymous

unregistriert

13

11.09.2008, 09:41

dot
Das könnte sein, wenn er DLL benutzt in Combo mit "GetModuleHandle" könnte sowas vorkommen.

Jonathan_Klein
Ich empfinde Cross-Posts irgendwo als frechheit:
http://www.jliforum.de/board/viewtopic.php?t=5505

14

11.09.2008, 11:13

Nein, dlls benutze ich nicht. Jedenfalls nciht explizit.

Zitat von »"unsigned long"«


Ich empfinde Cross-Posts irgendwo als frechheit:

Mach ich ja normalerweise auch nicht, aber da mir der Fehler schon als recht kniffelig vorkam und es dementsprechend weniger Leute gibt die mir helfen können, hab ichs erst im JLI und dann hier probiert. Außerdem hab ichs ja extra noch dabei geschrieben, naja.
Lieber dumm fragen, als dumm bleiben!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

15

11.09.2008, 11:24

Ich glaub dir bleibt nichts andres übrig als selbst zu debuggen. Wir können hier nur raten und mutmaßen. Beides ist ziemlich wenig produktiv für deine Problemlösung.
@D13_Dreinig

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

16

11.09.2008, 18:55

Zeig vielleicht noch die Implementierungen der beteiligten Destruktoren, also von Action, und Walk und AtteckMelee.

Ciao
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

17

04.10.2008, 12:18

Targeted Aktion löscht am Ende sein Target, was ja auch gut so ist. Schlecht ist, wenn man 2 A´TargetedAktions (also z.b. walk und attack) mit dem selben Target startet.
Also letztendlich doch ein Fall von "selben Zeiger 2 mal deleten".
Ich glabu ist werde mal boos::shared_pointer oder so einbauen :)
Lieber dumm fragen, als dumm bleiben!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

18

04.10.2008, 13:07

Sowas sollte man aber an den Werten der Variablen sehen....Der VS scheint dann immer ganz viel Müll rein zu schreiben, daher sieht man es eigentlich sofort. Und klar sind boost::shared_ptr oder smartpointer ne Lösung, aber ich vertrete die Meinung, dass in den meisten Fällen eher ein Designfehler vorliegt (Natürlich sind Fälle, wo ref-countering notwendig ist, von dieser Aussage ausgeschlossen :) ).
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.

19

04.10.2008, 13:27

Ja, schon, übers Design köntne man nochmal nachdenken. Man könnte z.b. überlegen, ob die Targets wirklich per new erzeugt werden sollten, oder ob halt die Aktion ein Target Objekt hat, in dass das neue Target quasi reinkopiert wird. (Also zugewisen bekommt).

Wenn man aber mit Pointern arbeitet, finde ich shared_pointer schon ok, imo ist der nur beim Kopieren und beim löschen minimal langsamer als ein normaler, weil er da halt bissle was verwalten muss. Und so ein Ziel wird sich ja oft geteilt, z.b. erst hinlaufen, dann hauen, oder aber auch, eine ganze Gruppe hat im Prinzip das selbe Ziell.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige