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

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

11

21.04.2015, 20:21

Wenn der gezeigte Code kompiliert ist es C# oder Java. Das bedeutet es kann kein Memoryleak sein!


Äh... was? Man kann auch in C# wunderbar Speicherlecks erzeugen O.o

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

12

21.04.2015, 20:34

Um das zu schaffen muss man aber auch den unsicheren Modus benutzen. Da das in der Regel nicht von Anfängern genutzt wird gehe ich einfach davon aus.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

13

21.04.2015, 20:45

Nein. Solange es von irgendwo eine Referenz auf ein Objekt gibt, räumt der GC das nicht auf. Einfachstes Beispiel das mir einfallen würde wäre ein event bei dem man das unsubscriben vergessen hat.

Kleines Beispiel:

C#-Quelltext

1
2
3
4
5
6
7
8
class MyClass
{
void Foo( Bar baz )
{
   this.baz = baz;
   this.baz.Event += This_EventHandler;
}
}


Wenn jedes Bar, das an Foo übergeben wird, wird nun erst aufgeräumt, wenn auch das MyClass aufgeräumt wird, dann es nie ein "this.baz.Event -= ..." gibt.
MyClass hält so nämlich eine Referenz auf jedes Bar.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sylence« (21.04.2015, 21:05)


NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

14

21.04.2015, 21:07

Aber davon gehe ich in diesem Fall doch nicht aus! <.<
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

15

21.04.2015, 21:08

Das klangt für mich nach einem "In C# gibt es generell keine Speicherlecks" und das wollte ich nur richtig stellen ;)

Werbeanzeige