MemAvail - Возвращает количество всей свободной памяти в куче.
MaxAvail - Возвращает размер самого большого непрерывного свободного блока в куче.
- Код: Выделить всё
program ptr_prog;
{$mode objfpc}{$H+}
uses DOS,CRT,Windows,renxfiltrus,RenWin; {renxfiltrus,RenWin - это моё}
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
const max = 1000;
type vector_ptr = ^vector;
vector = array[1..max] of longint;
var VP: vector_ptr;
i,j: Int64;
k: word;
q: string;
begin
clrscr;
RenxWin(3,11,1); {Razmer okna, Color linii, Color fona}
GotoXY(29,2); xfil_ruslazdos('Использование указателей',true);
q:=xfil_ruslazdos(' байт',false);
i:=MemAvail;
GotoXY(3,5); write(xfil_ruslazdos('Перед размещением свободно ',false),i:7,q);
New(VP);
j:=MemAvail;
GotoXY(3,6); write(xfil_ruslazdos('После размещения свободно ',false),j:7,q);
k:=i-j;
GotoXY(3,7); write(xfil_ruslazdos('Разрешено ',false),k:7,q);
for k:=1 to max do VP^[k]:=2*k+1;
Dispose(VP);
VP:=nil;
i:=MemAvail;
GotoXY(3,8); write(xfil_ruslazdos('После освобождения свободно ',false),i:7,q);
GotoXY(3,23); xfil_ruslazdos('Нажмите <Enter>:',true);
readln;
end.