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

21

19.01.2011, 13:58

So und nochmal für mein Verständnis.
Richtig wäre quasi

C-/C++-Quelltext

1
int* Pointer = 0;


Wenn ich es so mache

C-/C++-Quelltext

1
2
3
int* Pointer; 
Pointer = new int; 
Pointer = 0;


habe ich nen sogenanntes Speicherleak weil ich die Adresse bzw den Adressraum nicht wieder Frei gegeben habe.

ist das so richtig ?

EDIT: Habe meine Frage noch mal edetiert du bsit zu schnell mitdener Antwort :)
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Koschi« (19.01.2011, 14:11)


DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

22

19.01.2011, 14:06

Exakt.

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

23

19.01.2011, 21:46

Genau, bei der Methode hat man ein Speicherleck.
Bei C++ wird beim reservieren in der Regel noch zusätzlicher Speicher in der Größe eines Wortes mit alloziiert. Dort steht dann, wie viel Speicher mit new reserviert wurde. Wenn Du den Pointer aber auf 0 setzt, zeigt der Pointer nicht mehr auf den reservierten Speicher und weiß auch die größe nicht mehr, die Informationen sind aber noch reserviert.

Ganz korrekt ist es so:

C-/C++-Quelltext

1
2
3
4
5
int* Pointer = 0;
Pointer = new int;
//Mit Pointer arbeiten
delete Pointer;
Pointer = 0;

Trotzdem finde ich die Designvorschläge von DerMark sehr gut. Vielleicht solltest Du Dir mal Gedanken darüber machen sie umzusetzen. :)

24

20.01.2011, 06:47

Ja ich werde es umsetzen bin quasi schon dabei nur habe ich immer net viel zeit zum programieren darum gehts etwas langsam bei mir vorwärts :)

Aber danke für eure Hilfe.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Werbeanzeige