Система программирования 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;...
    Процедуры и функции для работы с динамической памятью
    Процедуры и функции для работы с динамической памятью Ниже приводится описание как уже рассмотренных процедур и функций, так и некоторых других, которые могут оказаться полезными при обращении к д...
    Администратор кучи
    Администратор кучи Как уже отмечалось, администратор кучи - это служебная подпрограмма, которая обеспечивает взаимодействие пользовательской программы с кучей. Администратор кучи обрабатывает запр...








Начало    



Книжный магазин