Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Статическая переменная состоит из идентификатора и значения




ПОНЯТИЕ УКАЗАТЕЛЯ И ЕГО ОБЪЯВЛЕНИЕ

Динамическая память является непрерывным массивом байтов.

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

Перед выполнением любого exe-файла выделяется специальная область памяти, которая называется префиксным сегментом программы.

Данные из этой области памяти используются для управления процессом выполнения программы. В частности, эта область содержит адреса подпрограмм, которые осуществляют обработку прерываний во время нажатия клавиш Ctrl+Break, обработку критических ошибок операционной системы, завершение программы и т.п..

После префиксного сегмента программы размещается сегмент кода основной программы. Каждому программному модулю также выделяется сегмент кода. Кроме того, сегмент кода выделяется для системного модуля.

Типизированные константы и глобальные переменные, объявленные в разделах const и var основной программы, располагаются в сегменте данных.

За сегментом данных расположенный сегмент стека. Сегмент стека используется для временного хранения адреса, по которому будет осуществляться возвращение к основной программе во время вызова процедуры или функции, параметров, которые передаются подпрограмме, а также для хранения значений объявленных в ней локальных переменных.

Остаток базовой памяти является динамической памятью, которая используется для хранения значений динамических переменных. Поэтому в общем случае с помощью динамических переменных в памяти можно хранить большие объемы данных, чем с помощью статических.


 

Эта область памяти называется кучей, или Heap-областью (от англ. heap – куча).

 

Начальный адрес Heap-области хранится в стандартной переменной Неароrg, конечный адрес – в стандартной сменной HeapEnd.

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

Каждый раз после выделения динамической памяти значение указателя HeapPtr увеличивается.

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

В стандартной переменной FreePtr хранится начальный адрес этой области памяти, а каждая запись в ней содержит информацию о расположении определенной динамической переменной.


Доступ к динамическим переменным осуществляется только по их адресам, но не по идентификаторам, поскольку местонахождение таких переменных в памяти становится известным лишь во время выполнения программы.

 

Для хранения адресов динамических переменных используются указатели СТАТИЧЕСКИЕ переменные ссылочного (указательного) типа.

 




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


Дата добавления: 2014-01-06; Просмотров: 288; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.