Добавил:
ikot.chulakov@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по Delphi с готовыми программами / Лабораторная работа №9 Динамическая память, указатели, динамический массив.pdf
Скачиваний:
19
Добавлен:
12.07.2020
Размер:
267.82 Кб
Скачать

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Лабораторная работа №9 Динамическая память и указатели

Введение

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

вObject Pascal. Рассмотрены типизированные и нетипизированные указатели, функции для работы с динамической памятью. Также рассмотрены некоторые типы с управляемым сроком жизни, такие как длинные строки и динамические массивы.

Динамическая память

При загрузке в память программа располагается в ней следующим образом

Секция кода

Секция данных

Секция стека

Динамическая

память

Рисунок 1 – Вид программы в ОЗУ

Рассмотрим подробнее назначение каждой части программы. Секция кода – это та часть программы где хранится исполняемый код модулей, а также основной программы. Далее располагаются глобальные переменные и типизированные константы. После данных следует область стека. Стек – это специальным образом организованная область памяти для временного хранения данных. Обычно стек используется для хранения фактических параметров передаваемых в подпрограммы, а также локальных переменных и констант. Под динамическую память отводится вся оставшаяся память компьютера1.

Таким образом динамическая память – это оперативная память ПК, предоставляемая программе при ее работе. В отличие от статического размещения данных, осуществляемого компилятором Object Pascal в процессе компиляции программы, при динамическом размещении заранее не известны ни тип, ни количество размещаемых данных.

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

1 Windows каждому приложению выделяет 2Гб адресного пространства, поэтому фактически на динамическую память остается 2Гб за вычетом размера программы.