Динамическое распределение оперативной памяти ЭВМ


Напомню:

· информация доступная для обработки процессором ЭВМ должна быть размещена в оперативной памяти,

· информационный объект (ИО) – фрагмент оперативной памяти ЭВМ,

· идентификатор ИО – символьное имя ИО, используемое в языках программирования.

· структура ИО (тип или побитная интерпретация содержимого ИО) указывается в соответствующих операторах описания идентификаторов ИО (Var, Const, Procedure).

Вывод: идентификатор (имя ИО) однозначно определяет структуру ИО.

Опр. Переменные (ИО), которые в момент описания наделяются не только структурой, но и конкретным адресом (местом) в оперативной памяти называются - статическими ИО.

Опр. Переменные (ИО), которые в момент описания наделяются только структурой (типом) называются - динамическими ИО.

Команда «выделить нужный объем оперативной памяти для динамической переменной» дается отдельным оператором! Если потребность в динамической переменной отпадает (расчеты проведены), то занятый динамической переменной фрагмент памяти можно освободить и использовать его для иных целей. Эта команда также дается отдельным оператором.

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

Синтаксис оператора описания динамических переменных:

Var И1, И2, …, Иn: ^ ТипИО;

Где Var- стандартное ключевое слово оператора,

И1, И2, …, Иn - стандартный перечень имен - идентификаторов (через стандартный разделитель – запятая),

: - стандартный разделитель оператора – двоеточее,

^- специальный ключевой символ (тильда),

ТипИО; - название типа описываемых переменных.

Пример:

Type TT=array[1..1000] of real; {TT – название новой структуры (типа) переменных, которые образуются последовательностями из тысячи вещественных чисел стандартного типа real }

Var a, b, gg:^TT; {описание динамических переменных}

Семантика этого оператора: запомни идентификаторы a, b, gg, как имена динамических переменных типа TT!

Выделение памяти для динамической переменной Иn осуществляется операторами:

New(Иn); {семантика: выделить для динамической переменной Иn фрагмент памяти соответствующий указанному в описании типу этой переменной, т.е. 6000 байт ! }

или

GetMemory(Иn , Nбайт); {семантика: выделить для динамической переменной Иn фрагмент памяти размером Nбайт байт !}.

Освобождение памяти от динамической переменной Иn осуществляется (парными к исходным) операторами:

Dispose(Иn); {семантика: освободить память ранее отведенную для динамической переменной Иn },

или, если для отведения памяти использовался оператор GetMemory,

FreeMemory(Иn , Nбайт); {семантика: освободить память ранее отведенную для динамической переменной Иn размером Nбайт байт}.

Во всех “исполнимых” операторах Pascal названия динамической переменной должно сопровождаться символом “^” (тильда).

Пример: a[3]^:=2.5*b^[8]; {внести в третий элемент динамического массива А число 2.5 умноженное на восьмой элемент динамического массива B!}.



Дата добавления: 2021-12-14; просмотров: 250;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.