Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Теоретические сведения



Читайте также:
  1. I. ОБЩИЕ СВЕДЕНИЯ
  2. АНАМНЕСТИЧЕСКИЕ СВЕДЕНИЯ
  3. Б. Сведения о процедуре разработ­ки теста.
  4. Вопрос 18. Документы и сведения, представляемые при международной перевозке.
  5. ВОПРОС 41. Основные теоретические положения символического интеракционализма. Общая характеристика работы Г. Блумера « Коллективное поведение».
  6. Г. Сведения о размещаемых ценных бумагах.
  7. Глава 1. Теоретические аспекты изучения социальных сетей и социального пространства

Динамические массивы

Динамические массивы не имеют фиксированной длины или размеров. Память для динамического массива распределяется в процессе присваивания или передачи в процедуру SetLength.

Тип динамического массива определяется конструкцией вида

Array of baseType

Например,

var MyFlexibleArray: array of Real;

объявляет одномерный динамический массив вещественных чисел типа Real. Объявление не выделяет памяти массиву MyFlexibleArray. Для создания массива в памяти надо вызвать SetLength. Напимер,

SetLength(MyFlexibleArray, 20);

Распределяет в памяти 20 вещественных чисел, проиндексированных от 0 до 19. Динамические массивы всегда имеют целочисленную индексацию, всегда начинающуюся с 0.

Имена динамических массивов неявно являются указателями. Для освобождения памяти динамического массива надо присвоить имени nil или передать переменную процедуре Finalize. Динамические массивы автоматически освобождаются, если счетчик ссылок на них становится равен нулю. Динамические массивы длиной 0 имеют значения nil.

Если X и Y – переменные одного типа динамического массива, X:=Y устанавливает X на тот же массив, что и Y. (Нет необходимости распределять память для X перед выполнением операции) В отличие от статических массивов динамические массивы не копируются автоматически перед записью в них. Например, после выполнения кода,

Var

A, B: array of Integer;

Begin

SetLength(A, 1);

A[0]:= 1;

B:= A;

B[0]:= 2;

end;


Дата добавления: 2015-07-11; просмотров: 154 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.006 сек.)