Турбо паскаль 7
Всі змінні, оголошені в програмі, розміщуються в одній безперервній області оперативної пам'яті, яка називається сегментом даних. Довжина сегмента даних визначається архітектурою мікропроцесорів 80х86 і становить 65536 байт, що може викликати відомі труднощі при обробці великих масивів даних. З іншого боку, обсяг пам'яті ПК (зазвичай не менше 640 Кбайт) достатній для успішного вирішення завдань з великою розмірністю даних. Виходом з ситуації може бути використання так званої динамічної пам'яті.
Динамічна пам'ять - це оперативна пам'ять ПК, що надається програмою при її роботі, за вирахуванням сегмента даних (64 Кбайт), стека (зазвичай 16 Кбайт) і власне тіла програми. Розмір динамічної пам'яті можна варіювати в широких межах. За замовчуванням цей розмір визначається всієї доступної пам'яттю ПК і, як правило, становить не менше 200. 300 Кб.
Динамічна пам'ять - це фактично єдина можливість обробки масивів даних великої розмірності. Багато практичні завдання важко або неможливо вирішити без використання динамічної пам'яті. Така необхідність виникає, наприклад, при розробці систем автоматизованого проектування (САПР): розмірність математичних моделей, що використовуються в САПР, може значно відрізнятися в різних проектах; статичну (тобто на етапі розробки САПР) розподіл пам'яті в цьому випадку, як правило, неможливо. Нарешті, динамічна пам'ять широко використовується для тимчасового запам'ятовування яних при роботі з графічними і звуковими засобами ПК. Динамічне розміщення даних означає використання динамічної пам'яті безпосередньо при роботі програми. На відміну від цього статичне розміщення здійснюється компілятором Турбо Паскаля в процесі компіляції програми. При динамічному розміщенні заздалегідь не відомі ні тип, ні кількість розміщуваних даних, до них не можна звертатися за іменами, як до статичних змінних.
Облікова структура даних
ВИДІЛЕННЯ І ЗВІЛЬНЕННЯ ДИНАМІЧНОЇ ПАМ'ЯТІ
Розташування купи в пам'яті ПК
Стан динамічної пам'яті:
а) перед звільненням; б) після Dispose (p3); в) після Release (p)
ПРОЦЕДУРИ І ФУНКЦІЇ
ДЛЯ РОБОТИ З ДИНАМІЧНОЇ ПАМ'ЯТТЮ
Функція SIZEOF. Повертає довжину в байтах внутрішнього подання зазначеного об'єкта. Виклик: SIZEOF (Х) Тут Х - ім'я змінної, функції або типу. Наприклад, всюди в програмі Primer1 замість константи SIZEOFREAL можна було б використовувати звернення SIZEOF (REAL).