Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Was ist HEAP ?

  Alt 11. Okt 2005, 08:18
Im Grunde gibt es da mehrere Bereiche, die man aber in drei "große" Sektionen trennen kann.

1. Statische Variablen, die du im Programm deklarierst (z.B. mit globalen var Statements), liegen im globalen Datenbereich.
2. Dynamische Variablen, die du während der Laufzeit alloziierst (wie z.B. TObject.Create) liegen auf dem Heap.
3. Lokale Variablen, die du innerhalb von Prozeduren verwendest, liegen auf dem Stack.

Gründe:
für 3 - die Variablen muss es mehrfach geben können wg. Rekursion.
für 2 - die Größe der Variablen steht zur Compilezeit noch nicht wirklich fest.

Dabei musst du allerdings unterscheiden, dass z.B. bei
Delphi-Quellcode:
var
  Form1: TForm1;
die Variable Form1 im statischen Datenbereich liegt, der Inhalt jedoch auf dem Heap (weil er dynamisch alloziiert wird).

// EDIT: Nix roter Kasten?!?
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat