пользователей: 21209
предметов: 10450
вопросов: 177346
Конспект-online
зарегистрируйся или войди через vk.com чтобы оставить конспект.
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

pogromirovanie:
» sooqa
Уася:
» History motherfuckers

Действия с динамическими переменными: создание и уничтожение. Динамические массивы и массивы указателей. Функции для определения свободной динамической памяти.

Динамические переменные — размещаются в памяти непосредственно в процессе работы программы. При динамическом размещении заранее неизвестны ни тип, ни количество размещаемых данных, к ним нельзя обращаться по именам, как к статическим переменным. 
Память под динамическую величину, связанную с указателем, выделяется в результате выполнения стандартной процедуры NEW(< указатель >); 
после выполнения этого оператора создана динамическая величина, имя которой имеет следующий вид: < имя динамической величины > := < указатель > 
NEW(P1); NEW(P2); NEW(Pm); После их выполненияP1^, P2^, Pm^ ; P1^ динамическая переменная, на которую ссылается указатель P1. 


Следует отчетливо понимать, что работа с динамическими данными замедляет выполнение программы, поскольку доступ к величине происходит в два шага: сначала ищется указатель, затем по нему — величина. Если динамическая величина теряет свой указатель, то она становится «мусором». В программировании под этим словом понимают информацию, которая занимает память, но уже не нужна. DISPOSE(< указатель >); Стандартная процедура, позволяющая освобождать память от данных, потребность в которых отпала. GetMem(P,Size) - резервирование памяти; FreeMem(P,Size) - освобождение памяти. Р — нетипизированный указатель, Size — размер в байтах требуемой или освобождаемой части кучи (до 65521 байт). 


Для работы с динамическими переменными в программе должны быть выполнены следующие действия: 
-Выделение памяти под динамическую переменную; 
-Инициализация указателя; 
-Освобождение памяти после использования динамической переменной. 


Альтернативой использованию функции Dispose является применение функций Mark и Release, которые совместно обеспечивают освобождение динамического участка памяти после его использования в программе. В действительности вызов функции Mark должен делаться до обращения к функции New, а вызов функции Release должен делаться после функции New, когда требуется перераспределить память. Функция Release освобождает все участки памяти, которые выделялись между вызовами функций Mark и Release. 

 


Динамическим считается массив, который способен в любой момент изменять свой размер. 
Массив указателей (МУ) - простейшая структура данных, в которой проявляется различие между физическим и логическим порядком следования элементов. Способ организации данных это массив, каждый элемент которого содержит указатель на переменную (объект). 
Sizeof — для определения размера необходимой памяти. Sizeof(q), где Q переменная или тип. memAvail — возвращает сумарный размер всех свободных областей динамической памяти. 


27.01.2014; 07:43
хиты: 97
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2016. All Rights Reserved. помощь