Verfasst von: bletra | 25. März 2010

.Net: Array auf dem Heap

Werttypen sind auf dem Stack, Referenztypen auf dem Heap. Der GarbageCollector räumt den Heap auf.

System.Array ist ein Referenztyp. Alle Arrays, egal ob int oder string, werden von System.Array abgeleitet und landen somit auf dem Heap.

Lokale Variablen sind immer auf dem Stack. Wobei zu beachten ist, dass Referenztypen dann nur die Referenz enthalten und nur bei Werttypen der tatsächliche Wert auf dem Stack ist.  Damit sind lokale int-Arrays vollständig auf dem Stack.

Eine Diskussion zu diesem Thema führt „(C#) Arrays, heap and stack and value types“.

Eine gute Darstellung mit vielen Beispielen und Bildern, wie es genau auf dem Stack bzw. Heap aussieht, finden Sie unter „C# Heap(ing) Vs Stack(ing) in .NET: Part I“.

Ich hoffe, damit sind einige Unklarheiten beseitigt. Zugegeben, trivial ist das Problem nicht 😉

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Kategorien

%d Bloggern gefällt das: