Введение в программирование. Pascal и Delphi. Гурьянов Л.В - 96 стр.

UptoLike

95
Dispose(SaveEkran); { освобождение выделенной памяти }
end.
6.2.2. Процедуры GetMem и FreeMem
В этих процедурах размер запрашиваемой и освобождаемой памя-
ти явно указывается в процедуре.
Для определения необходимого размера выделяемой памяти для
информации различного типа рекомендуется использовать функцию
Sizeof().
GetMem(P, Size)выделить память размером Size (единовремен-
но не более
65528 байт) и поместить значение начального адреса вы-
деленной области памяти в указатель
P.
FreeMem(P, Size)освободить выделенную память размером
Size, начальный адрес которой определяется значением указателя P.
Пример 2.
"Летящее красное ядро":
uses Graph, crt;
var
grDriver, grMode, errCode, i : integer;{ переменные для
графики }
Р:pointer; { указатель "на ядро" }
size :word; { размер "области ядра" }
begin
{инициализация графического режима}
grDriver:= Ditect;
InitGraph(grDriver, grMode, '');
errCode:= GraphResult;
if errCode= grOk then begin
{работа в графическом режиме}
size:= ImageSize(9, 20 ,30, 40);{ определяем размер
памяти для "ядра" }
if MaxAvail > size then begin {проверяем есть ли
свободная память }
GetMem(P, size); { выделяем память и начинаем рисовать }
   Dispose(SaveEkran); { освобождение выделенной памяти         }
   end.
   6.2.2. Процедуры GetMem и FreeMem
   В этих процедурах размер запрашиваемой и освобождаемой памя-
ти явно указывается в процедуре.
   Для определения необходимого размера выделяемой памяти для
информации различного типа рекомендуется использовать функцию
Sizeof().
   GetMem(P, Size) – выделить память размером Size (единовремен-
но не более 65528 байт) и поместить значение начального адреса вы-
деленной области памяти в указатель P.
   FreeMem(P, Size) – освободить выделенную память размером
Size, начальный адрес которой определяется значением указателя P.
   Пример 2. "Летящее красное ядро":
   uses Graph, crt;
   var
     grDriver, grMode, errCode, i : integer;{ переменные для
                                              графики }
     Р:pointer; { указатель "на ядро"                       }
     size :word; { размер "области ядра"                 }
   begin
    {инициализация графического режима}
    grDriver:= Ditect;
    InitGraph(grDriver, grMode, '');
    errCode:= GraphResult;
    if errCode= grOk then begin
     {работа в графическом режиме}
     size:= ImageSize(9, 20 ,30, 40);{ определяем размер
                                       памяти для "ядра" }
     if MaxAvail > size then begin {проверяем есть ли
                                      свободная память     }
       GetMem(P, size); { выделяем память и начинаем рисовать }



                               95