AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Was ist HEAP ?

Ein Thema von sniper_w · begonnen am 11. Okt 2005 · letzter Beitrag vom 11. Okt 2005
Antwort Antwort
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#1

Was ist HEAP ?

  Alt 11. Okt 2005, 07:27
Was soll man darunter verstehen ? Wie definiert man das ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Was ist HEAP ?

  Alt 11. Okt 2005, 07:29
Recht gut erklärt bei Wikipedia:
http://de.wikipedia.org/wiki/Heap_%28Datenstruktur%29

Mal ehrlich: Selber gesucht hast Du nicht, oder? Oder hast Du eine spezielle Frage zu Heaps?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Was ist HEAP ?

  Alt 11. Okt 2005, 07:49
Nach dem ich den Artickel gelesen habe, habe ich die Frage gestellt, wollte nur sehen ob das auch stimmt. Nur dass es in Wikipedia steht, heisst nicht automatisch, dass es stimmt.
Speziel:
Es kommt immer wieder vor, Variabeln sind auf dem Heap "gespeichert", oder es gibt sie da, und es gibt Variabeln auf den Stack ? Unterschied ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#4

Re: Was ist HEAP ?

  Alt 11. Okt 2005, 08:12
stackvariablen sind deine gewohnten variablen. sie werden auf dem stack angelegt. naeheres dazu unter [wikipedia]Stack (Datenstruktur)[/wikipedia]

heapvariablen werden durch dynamische speicheranforderung (malloc()/ new in c/c++) geschaffen und werden durch zeiger benutzt.
dank des heaps kann man megabytes an speicher benutzen, was auf dem stack nicht moeglich waere. der stack kann naemlich nur begrenzt gross sein (ok, stimmt nicht ganz, aber tun wir mal so).
Christoph
  Mit Zitat antworten Zitat
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz