Функції Delphi: опис, можливості, поради та рекомендації

Статистичні та динамічні масиви

Статичні масиви функції Delphi насправді є просто покажчиками на безперервну область пам’яті, яка була виділена для зберігання потрібної кількості даних. Компілятор виконує математичні операції, щоб перетворити індекс вказівник на один елемент в масиві, а динамічні, з іншого боку, додають рівень побічності.

Динамічний масив – це запис, що містить інформацію про нього, включаючи розмір, кількість елементів і покажчик на статичний. Коли викликається SetLength, відбувається кілька процесів:

  • Поле розміру оновлюється.
  • Новий (внутрішній) статичний масив функції Delphi 7 виділяється з новим розміром.
  • Елементи старого статичного копіюються в новий.
  • Покажчик статичного змінюється на новий.
  • Якщо в поточній позиції внутрішнього статичного масиву достатньо місця для перерозподілу, і існує одна змінна посилається на масив, відбувається тільки крок № 1. Все це реалізується кожного разу, коли змінюють його довжину.

    Якщо є інші змінні, які посилаються на той же масив, старий статичний не буде видалений. Всякий раз, коли змінюється розмір динамічного масиву, він буде скопійований, що означає перебір в пам’яті. Час, який потрібен, пропорційно розміру, наприклад, копіювання з 20 елементів займає більше часу, ніж з 10.