Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

ФУНКЦИИ Mark и Release 

              Альтернативой использованию функции Dispose является  приме-
         нение функций Mark и Release,  которые совместно обеспечивают ос-
         вобождение динамического участка памяти после его использования в
         программе.  В действительности вызов функции Mark должен делаться
         до обращения к функции New,  а вызов функции Release  должен  де-
         латься  после  функции New,  когда требуется перераспределить па-
         мять. Функция Release освобождает все участки памяти, которые вы-
         делялись  между  вызовами функций Mark и Release.  Таким способом
         системе возвращается несколько участков памяти, а при использова-
         нии функции Dispose возвращается только один участок памяти,  за-
         даваемый соответствующим указателем.
              В функции Mark используется один аргумент. Он должен являть-
         ся указателем переменной любого типа, поскольку единственным наз-
         начением  этой функции является сохранением начала области памяти
         в динамической области.  Функция Release должна использовать  тот
         же  указатель,  который не должен модифицироваться.  Например,  в
         приведенной ниже программе выполняется динамическое выделение па-
         мяти под массив из сорока целых чисел и освобождение ее при помо-
         щи функций Mark и Release:

         {Динамическое выделение памяти с использованием Mark и Release.}
             program alloc;

             type
               pntr = ^RecType;
               RecType = array[1..40] of integer;

             var
               p: pntr;
               t: integer;
               q: ^integer;

             begin
               Mark(q);
               New(p);
               for t: = 1 to 40 do p^[t]:=t*2;
               for t:= 1 to 40 do Write(p^[t], ' ');
               WriteLn;
               Release(q);
              {В этом месте вся память уже возвращена системе}
             end.

              Метод управления динамическим распределением  памяти зависит
         от того, как вы хотите возвращать память системе. Если память бу-
         дет  возвращаться  частично,  то  следует  использовать   функцию

         Dispose.  Если вы всегда предполагаете освобождать всю память, то
         лучше использовать функции Mark и Release. В примерах в этой кни-
         ге  используется функция Dispose,  поскольку такой метод обладает
         большей гибкостью. Однако вы можете свободно пользоваться функци-
         ями Mark и Release для освобождения памяти,  если это больше под-
         ходит для ваших задач.


(с)Все права защищены

По всем интересующим вопросампрошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz