Система программирования Turbo Pascal





Глава 6. Указатели и динамическая память


    Глава 6. Указатели и динамическая память
    Указатели и динамическая память Динамическая память Адреса и указатели Объявление указателей Выделение и освобождение динамической памяти Использование указателей Процедуры и функции для работы с...
Динамическая память
Динамическая память Все переменные, объявленные в программе, размещаются в одной непрерывной области оперативной памяти, которая называется сегментом данных. Длина сегмента данных определяется арх...Адреса и указатели
Адреса и указатели Оперативная память ПК представляет собой совокупность элементарных ячеек для хранения информации - байтов, каждый из которых имеет собственный номер. Эти номера называются адрес...Схема формирования адреса в ПК
Схема формирования адреса в ПК Фрагмент памяти в 16 байт называется параграфом, поэтому можно сказать, что сегмент адресует память с точностью до параграфа, а смещение - с точностью до байта. Кажд...Оъбявление указателей
Оъбявление указателей Как правило, в Турбо Паскале указатель связывается с некоторым типом данных. Такие указатели будем называть типизированными. Для объявления типизированного указателя использу...Списочная структура данных
Списочная структура данных В Турбо Паскале можно объявлять указатель и не связывать его при этом с каким-либо конкретным типом данных. Для этого служит стандартный тип POINTER, например: var р: po...Выделение и освобождение динамической память
Выделение и освобождение динамической память Вся динамическая память в Турбо Паскале рассматривается как сплошной массив байтов, который называется кучей. Физически куча располагается в старших ад...Расположение кучи в памяти ПК
Расположение кучи в памяти ПК После того как указатель приобрел некоторое значение, т.е. стал указывать на конкретный физический байт памяти, по этому адресу можно разместить любое значение соотве...Состояние динамической памяти: а) перед освобождением; б) после Dispose(p3); в) после Release(p)
Рис.6.4 . Состояние динамической памяти: а) перед освобождением; б) после Dispose(p3); в) после Release(p) За одно обращение к куче процедурой GETMEM можно зарезервировать до 65521 байта динамичес...Использование указателей
Использование указателей Подведем некоторые итоги. Итак, динамическая память составляет 200...300 Кбайт или больше, ее начало хранится в переменной HEAPORG, а конец соответствует адресу переменной...Пример 6.1
const SizeOfReal = 6; {Длина переменной типа REAL} N = 100; {Количество столбцов} М = 200; {Количество строк} var i,j : Integer; PtrStr: array [1..N] of pointer;. s : Real ; type RealPoint =^Real;...Процедуры и функции для работы с динамической памятью
Процедуры и функции для работы с динамической памятью Ниже приводится описание как уже рассмотренных процедур и функций, так и некоторых других, которые могут оказаться полезными при обращении к д...Администратор кучи
Администратор кучи Как уже отмечалось, администратор кучи - это служебная подпрограмма, которая обеспечивает взаимодействие пользовательской программы с кучей. Администратор кучи обрабатывает запр...







Содержаие