Det er ikke nemt at komme med en meget kort forklaring på disse, men jeg vil
forsøge
Stakken har sit navn af, at der er tale om et dataområde, hvor data kun kan
placeres og hentes i en bestemt rækkefølge kaldet: sidste ind, første ud.
Det vil sige, at hvis du har lagt værdierne
A1
A2
A3
ind på stakken, vil de blive hentet som
A3
A2
A1
Det er smart til at lagre data for procedurekald ind på denne måde. Når en
procedure kaldes, ligges parametrene ind på stakken. Når proceduren
afsluttes, fjernes disse parametre fra stakken og når den kaldende procedure
afsluttes, fjernes disse osv.
Rent programmæssigt er der tale om et præallokeret dataområde, hvor en peger
afgører hvor data kan ligges ind og data fjernes ved at flytte pegeren
tilbage på stakken.
Heap'en er et dataområde, hvor dataområder kan allokeres. Heapmanageren er
derfor et memory booking system, hvor data kan reserveres når det skal
bruges og reservationen skal ligeledes fjernes, når hukommelsen ikke længere
skal bruges. I sprog som C, C++ osv. gøres dette af applikationsprogrammøren
(malloc/free, new/delete). I Java skal applikationsprogrammøren kun
reservere hukommelsen, da Java har mekanismer til at detektere om
hukommelsen stadig er i brug (refereres til).
Håber at du blev lidt klogere.
--
Best regards
Soeren Dalby
www.dalbydata.dk
"Kent Friis" <kfr@fleggaard.dk> wrote in message
news:9ovopm$2ln$1@sunsite.dk...
> Den Thu, 27 Sep 2001 17:42:06 GMT skrev HHD:
> >Er der en der kan give en kort, dansk forklaring på
> >- stakken
> >- heapen
> >samt hvad forskellen er ?
>
> Det er måske lektier til imorgen?
>
> Mvh
> Kent
> --
> 8:16pm up 2:37, 1 user, load average: 101.21, 95.46, 55.85
> 164 processes: 62 sleeping, 102 running, 0 zombie, 0 stopped
>
> With XMMS tugging along nicely, playing Vivaldi...