Regeln wann Heap oder wann Stack
-
Hi,
ich als Anfänger habe da mal die Frage, gibt es einen goldene Regel wann man auf dem Stack bleibt und wann man in den Head geht?
Dankender Gruß
-
auf n heap, wenns auf m stack kein platz hat oder länger überleben muss
sonst stack
-
Benutzte den Heap nur, wann immer du nicht zur Kompilierzeit weißt, wieviel Speicher du brauchst, z.B.
std::vector
.
-
Ich nehme gerne Heap ab 4k.
-
Ich lege oft Instanzen einer Klasse auf den Heap. Manchmal musst Du aber auch Variablen auf den Heap legen. Das kommt ganz darauf an, was Du machen möchtest!
Entscheidend ist, ob Du zur Laufzeit weißt, wie viel Speicherplatz benötigt wird.lg, freakC++
-
Heap (genauer Freestore bzw. dynamischer Speicherbereich)
- Lebenszeit der Objekte selbst bestimmen
- Grössere Objekte
- Anzahl Objekte ist nicht zur Kompilierzeit bekannt
Stack (automatischer Speicherbereich)
- Sehr schnelle Speicherbeschaffung
- RAII, Zerstörung bei Verlassen des Scopes
freakC++ schrieb:
Ich lege oft Instanzen einer Klasse auf den Heap. Manchmal musst Du aber auch Variablen auf den Heap legen.
Das finde ich verwirrend. Erstens schliessen sich Variablen und Instanzen nicht aus, zweitens legt man keine Variablen auf den Heap, sondern Objekte. Variablen sind dann möglicherweise die Zeiger, über die man die Objekte anspricht.
-
mein ich ja