Введення
Адресація динамічних змінних відбувається через покажчики. У Паскалі можна визначити змінні, які мають тип покажчик, їх значення визначають адресу об'єкта. Для роботи з динамічними змінними в програмі повинні бути передбачені:
виділення пам'яті під динамічну змінну;
привласнення вказівником на динамічну змінну адреси виділеної пам'яті (ініціалізація покажчика);
звільнення пам'яті після використання динамічної змінної.
1. Покажчики. Опис покажчиків
Покажчики - це особливий тип даних. У змінних цього типу зберігаються адреси інших змінних містять корисну для програми інформацію. На перший погляд може здатися, що використання покажчиків призводить до зайвих витрат пам'яті і до ускладнення програми, а також істоті ускладнює і сам процес програмування. У даній главі ми, наведемо такі приклади використання покажчиків, з яких стане ясно, що всі додаткові витрати на їх зберігання і обробку окупаються в повній мірі. Робота з вказівниками передбачена не тільки в Pascal, але і в деяких інших мовах програмування. Наприклад, в мові С покажчики використовуються практично в будь-якій програмі. p align="justify"> У Pascal роль покажчиків дещо скромніші, і, тим не менш, початківцям програмістам слід засвоїти базові принципи роботи з покажчиками, щоб глибше зрозуміти внутрішній механізм обробки і виконання будь-якої комп'ютерної програми.
. Покажчики та адреси
Відомо, що адресою змінної є адреса першого байта комірки пам'яті, яка під неї відводиться. Для даних структурних типів (масивів і записів) їх адресою вважається адреса першого байта першого елемента. p align="justify"> У Turbo Pascal існує можливість прямого доступу до будь-якого байту оперативної пам'яті за його адресою за допомогою визначених у модулі system масивів Mem, MemW і MemL, які дозволяють записати інформацію або прочитати її безпосередньо з комірок пам'яті (один, два або чотири байти). Це дуже небезпечні дії, тому вони виключені в 32 - розрядних системах програмування. Все ж дамо короткі пояснення для тих, хто працює в середовищі Borland (Turbo) Pascal. p align="justify"> В якості індексу в цих масивах використовується адреса, записаний у вигляді, прийнятому в DOS: сегмент: Зсув відносно початку сегменту. Такий дивний спосіб запису адреси пов'язаний з тим, що в операційній системі DOS вся пам'ять розбита на сегменти, розміри яких не перевищують 64 Кбайт. Для отримання абсолютної адреси з пари сегмент Зсув система додає до сегменту праворуч шістнадцятковий нуль (це чотири нулі в двійковій системі), а потім складає його зі зміщенням. Таким способом можна адресувати 1 Мбайт пам'яті. p align="justify"> Наприклад, початкова адреса відеобуфера запишеть...