Memory allocation: Difference between revisions

Content added Content deleted
(added omit from ML/I)
(→‎{{header|Pascal}}: add example)
Line 410: Line 410:
<lang parigp>allocatemem(100<<20)</lang>
<lang parigp>allocatemem(100<<20)</lang>
to allocate 100 MB.
to allocate 100 MB.

=={{header|Pascal}}==

=== Stack ===

Variables declared in procedures and functions are allocated on the stack.<br>
Their scope is local to the respective procedure/function and their memory is freed with the end of the procedure/function.

=== Heap ===

Dynamicly created objects (dynamic arrays, class instantiations, ...) are allocated on the heap.<br>
Their creation and destruction is done explicitly.
<lang pascal>type
TByteArray = array of byte;
var
A: TByteArray;
begin
setLength(A,1000);
...
setLength(A,0);
end;</lang>

<lang pascal>type
Tcl = class
dummy: longint;
end;
var
c1: cl;
begin
c1:=Tcl.create;
...
c1.destroy;
end;</lang>


=={{header|PicoLisp}}==
=={{header|PicoLisp}}==