АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Підпрограми для роботи з динамічною пам’яттю

Читайте также:
  1. B Хід роботи.
  2. II. Основні напрями роботи, завдання та функції управління
  3. III. Організація роботи з підготовки та направлення структурними підрозділами органів ДПС запитів на встановлення місцезнаходження платника податків
  4. III. Основний зміст роботи
  5. V. ЗАВДАННЯ ДО ПРАКТИЧНОЇ ЧАСТИНИ КУРСОВОЇ РОБОТИ
  6. V. РЕЖИМ РОБОТИ, ТРИВАЛІСТЬ РОБОЧОГО ЧАСУ ТА ВІДПОЧИНКУ
  7. VІ. ЗАХИСТ КУРСОВОЇ РОБОТИ
  8. VІІ. Оформлення роботи
  9. Алгоритм виконання курсової роботи
  10. Алгоритм виконання роботи
  11. АЛГОРИТМ ДІЇ АДМІНІСТРАЦІЇ ТА ЗАСТУПНИКА ДИРЕКТОРА З ВИХОВНОЇ РОБОТИ ЗАКЛАДУ ОСВІТИ ПІД ЧАС ЗДІЙСНЕННЯ ПЕРЕВІРКИ ФАХІВЦЯМИ СЛУЖБИ У СПРАВАХ ДІТЕЙ
  12. АЛГОРИТМ РОБОТИ НАД ПРОФЕСІЙНО-ОРІЄНТОВАНИМИ ЗАВДАННЯМИ З КУРСУ «ОСНОВИ ПСИХОЛОГІЧНОГО ТРЕНІНГУ»

Приводимо перелік процедур і функцій, які найчастіше використовуються в Турбо Паскалі для роботи з динамічною пам’яттю.

Функція Addr(X): POINTER Повертає результат типу Pointer, який вміщує адресу аргументу (запис P1:=ADDR(X) еквівалентна запису P1:=@X, де Х- ім’я змінної, константи, процедури, функції тощо).

Процедура Dispose(VAR P:POINTER). Знищує динамічно розміщену змінну, на яку посилається вказівник P(типізований вказівник).

Процедура FreeMet (VAR P:POINTER; Size:WORD). Звільнює блок пам’яті, розмір якого Size; вказівник P вказує на цей блок пам’яті.

Процедура GetMet (VAR P:POINTER; Size:WORD). Виділяє блок пам’яті вказаного розміру Size. Адреса початку блока присвоюється вказівнику P. За одно звернення до процедури резервується не більше 65521 байта пам’яті.

Процедура Mark(VAR P:POINTER). Присвоюєвказівнику поточне значення вказівника, тобто значення HeapPrt. Процедура використовується для послідуючого звільнення за допомогою процедури Release блоків пам’яті, розміщених вище вказівника P.

Процедура New (VAR P:POINTER). Резервує фрагмент пам’яті, де буде розміщена нова динамічна змінна. Адреса початку виділеної області присвоюється вказівнику P (типізований вказівник).

Процедура Release (VAR P:POINTER). Звільнює пам’ять, зайняту блоками. Які розміщені вище вказівника P.

Функція Prt (Segment,Offset:Word). Перетворюєокремо задані значення сегменту і зміщення в значення типу POINTER. Segment- вміщує значення сегмента пам’яті,а Offset – значення зміщення. Значення, яке повертає функція, може бути присвоєне вказівнику будь-якого типу. Сегмент – це ділянка пам’яті довжиною 64 Кбайт, починається з адреси, значення якої кратне числу 16. Зміщення – це число, яке визначає номер байта в сегменті, до якого треба звернутися.

Функція SizeOf(X):INTEGER. Обчислює об’єм в байтах основної пам’яті, яку займає вказана змінна або вказаний тип даних(Х- ідентифікатор змінної).

Теоретичні питання до теми: Динамічна память.

1.Яка принципова різниця між статичними і динамічними змінними?

2. Привести приклади нераціонального використання оперативної пам’яті при використанні статичних змінних.

3.На якому етапі(компіляції чи виконання) проходить виділення пам’яті під динамічні змінні?

4. На якому етапі(компіляції чи виконання) проходить виділення пам’яті під статичні змінні?

5. Вкажіть причини використання динамічних змінних.

6. Дайте визначення вказівника.

7.Який об’єм пам’яті необхідний для зберігання вказівника?

8.В яких випадках пам’ять під вказівник виділяється статистично, а в яких динамічно?

9.Коли проходить виділення пам’яті для вказівників, а коли для даних, на які вони вказують?

10.Що описують в першу чергу – тип вказівника чи тип даних, на які вони вказують?

11.Чи визначено значення по замовчанню для змінних посилального типу?

12.Поясніть роль базового типу при роботі з вказівниками.

13.Для чого необхідно значення nil при роботі з вказівниками.

14.Що таке базовий тип?

15. Чи можна в якості базового типу використовувати тип, який визначений користувачем?

16.Що є значенням змінної посилального типу?

17.Яке універсальне значення може бути присвоєно будь-якій змінній посилального типу?

18. Назвіть операції, які допускаються над значеннями посилального типу.

19. Які стандартні процедури реалізують основні дії над динамічними змінними?

20.Яке призначення стандартних процедур New, Dispose?

21. До чого приводить „втрата” вказівника на дані, які зберігаються в динамічній пам’яті?

22.Чи має межу динамічна пам’ять? Якщо - так, то яку?

 

 


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)