36299

Работа с динамическими переменными

Доклад

Информатика, кибернетика и программирование

Использование идентификатора указателя в программе означает обращение к адресу ячейки памяти на которую он указывает. Выделение и освобождение памяти под динамические переменные выполняется стандартными процедурами New Dispose во время работы программы. Р В неопределенном состоянии указатель бывает в начале работы программы до первого присваивания ему или конкретного адреса или пустого адреса nil а также после освобождения области памяти на которую он указывает. b:=nil; Процедура New: выделяет область памяти соответственно тому...

Русский

2013-09-21

394 KB

1 чел.

Работа с динамическими переменными

          Создание и уничтожение динамических переменных

При объявлении данных динамической структуры в разделе описаний  указывается не сама переменная какого-либо типа, а указатель (ссылка) на нее. В результате указатель будет обычной переменной, а переменная на которую он указывает — динамической.

Использование идентификатора указателя в программе означает обращение к адресу ячейки памяти, на которую он указывает. Чтобы обратиться к содержимому ячейки, на которую указывает указатель, требуется после его идентификатора поставить символ ^. Эта операция называется операцией разыменования.

Выделение и освобождение памяти под динамические переменные выполняется стандартными процедурами New, Dispose во время работы программы.

Указательная переменная Р может быть в трех состояниях.

1. Содержать адрес какой-либо переменной, память под которую уже выделена.

2. Содержать специальный пустой адрес nil.

3. Находиться в неопределенном состоянии. Р

В неопределенном состоянии указатель бывает в начале работы программы до первого присваивания ему или конкретного адреса, или пустого адреса nil, а также после освобождения области памяти на которую он указывает.

Различие между состоянием nil и неопределенным состоянием:

    Р1=Р2

       Т.е. если 2 указателя приравнены nil, то они равны, а если они неопределены, то нет.

 Р1<>Р2

14.2. ПРОСТЕЙШИЕ ДЕЙСТВИЯ С УКАЗАТЕЛЯМИ

5а) Dispose (a); 

а := b; 

6.  b:=nil;

Процедура New(A):

  1.  выделяет область памяти соответственно тому типу, который описан для указателя А и
  2.  записывает адрес выделенной памяти в указатель.

Процедура Dispose(A) освобождает область памяти, на которую указывает указатель А, после чего эта область памяти становится доступной для распределения под другие динамические переменные.