« Предыдущий вопрос
Модули. Виды модулей

Модуль(UNIT) в Pascal – это особым образом оформленная библиотека подпрограмм. Модуль, в отлич

Загрузка
Скачать Получить на телефон
например +79131234567

txt fb2 ePub html

на телефон придет ссылка на файл выбранного формата

Что это

Шпаргалки на телефон — незаменимая вещь при сдаче экзаменов, подготовке к контрольным работам и т.д. Благодаря нашему сервису вы получаете возможность скачать на телефон шпаргалки по информационным технологиям. Все шпаргалки представлены в популярных форматах fb2, txt, ePub , html, а также существует версия java шпаргалки в виде удобного приложения для мобильного телефона, которые можно скачать за символическую плату. Достаточно скачать шпаргалки по информационным технологиям — и никакой экзамен вам не страшен!

Сообщество

Не нашли что искали?

Если вам нужен индивидуальный подбор или работа на заказа — воспользуйтесь этой формой.

Следующий вопрос »
Абстрактные структуры данных

Структурированные типы данных, такие как массивы, множества, записи, представляют собой статич

Ссылочный тип данных. Динамическая память. Динамические переменные. Работа с динамической памятью


Статической переменной (статически размещенной) называется описанная явным образом в программе переменная, обращение к ней осуществляется по имени. Место в памяти для размещения статических переменных определяется при компиляции программы. В отличие от таких статических переменных в программах, написанных на языке Pascal, могут быть созданы динамические переменные. Основное свойство динамических переменных заключается в том, что они создаются, и память для них выделяется во время выполнения программы.


Размещаются динамические переменные в динамической области памяти (heap-области). Динамическая переменная не указывается явно в описаниях переменных, и к ней нельзя обратиться по имени. Доступ к таким переменным осуществляется с помощью указателей и ссылок.


Cсылочный тип (указатель) определяет множество значений, которые указывают на динамические переменные определенного типа, называемого базовым типом. Переменная ссылочного типа содержит адрес динамической переменной в памяти. Если базовый тип является еще не описанным идентификатором, то он должен быть описан в той же самой части описания типов, что и тип-указатель.


Зарезервированное слово nil обозначает константу со значением указателя, которая ни на что не указывает.


Приведем пример описания динамических переменных.


var p1, p2: ^real;


p3, p4: ^integer;



Процедуры и функции работы с динамической памятью


1. Процедура New{var p: Pointer).


Выделяет место в динамической области памяти для размещения динамической переменной p", и ее адрес присваивает указателю p.


2. Процедура Dispose(var p: Pointer).


Освобождает участок памяти, выделенный для размещения динамической переменной процедурой New, и значение указателя p становится неопределенным.


3. Процедура GetMem(var p: Pointer; size: Word).


Выделяет участок памяти в heap-области, присваивает адрес его начала указателю p, размер участка в байтах задается параметром size.


4. Процедура FreeMem(varp: Pointer; size: Word).


Освобождает участок памяти, адрес начала которого определен указателем p, а размер – параметром size. Значение указателя p становится неопределенным.


5. Процедура Mark{var p: Pointer) записывает в указатель p адрес начала участка свободной динамической памяти на момент ее вызова.


6. Процедура Release(var p: Pointer) освобождает участок динамической памяти, начиная с адреса, записанного в указатель p процедурой Mark, т. е. очищает ту динамическую память, которая была занята после вызова процедуры Mark.


7. Функция MaxAvail: Longint возвращает длину в байтах самого длинного свободного участка динамической памяти.


8. Функция MemAvail: Longint возвращает полный объем свободной динамической памяти в байтах.


9. Вспомогательная функция SizeOf(X):Word возвращает объем в байтах, занимаемый X, причем X может быть либо именем переменной любого типа, либо именем типа.