Здравствуйте!
Сколько не читал статей об указателях - так и не понял, Dispose и New ведь лишь возвращают память куче, не очищая ее? Потому что работа такой программы:
Код:
program test;
{$APPTYPE CONSOLE}
uses
SysUtils;
procedure tst(b1:boolean);
var p:^integer;
begin
if b1 then begin
New(p);
p^:=666;
dispose(p);
end else begin
New(p);
writeln(p^);
dispose(p);
end;
end;
begin
tst(true);
tst(false);
readln;
end.
Выводит в консоль 666.
Значит, выходит, даже при вызове New затем все равно придется вручную чистить память, на которую указывает наш указатель?