Динамічні масиви в Паскалі

Динамічні масиви в Pascal

Динамічні масиви в Паскалі не мають заздалегідь визначеного розміру. Розмір динамічних масивів може змінюватися. Приклад створення динамічного масиву в Паскалі:

type TIntMassiv = array of Integer;
var intMassiv: TIntMassiv;

тут створено новий тип TIntMassiv, це динамічний масив, його розмір не відомий, і змінна цього типу intMassiv.

Розмір динамічного масиву невідомий, але для роботи з таким масивом розмір треба встановити. Встановлюють розмір динамічного масиву в Паскаль за допомогою функції SetLength

SetLength(intMassiv, 2);

тут встановлений розмір два для масиву intMassiv.

Відлік індексів динамічного масиву в Паскалі завжди ведуть з нуля.

Присвоїмо значення першого елемента масиву intMassiv, а індекс першого елемента динамічного масиву завжди дорівнює нулю:

intMassiv[0] := 10;

Присвоїмо значення другого елементу масиву intMassiv, а індекс другого елемента динамічного масиву завжди дорівнює 1:

intMassiv[1] := 12;

Змінимо довжину динамічного масиву в сторону збільшення:

SetLength(intMassiv, 3);

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

Присвоїмо значення нового третього елементу масиву intMassiv, а індекс третього елемента динамічного масиву завжди дорівнює 2:

intMassiv[2] := 14;

Змінимо довжину динамічного масиву в бік зменшення:

SetLength(intMassiv, 1);

тут ми зменшили розмір масиву на два елемента, при цьому останні два елементи існуючого масиву пішли.

Після закінчення роботи з динамічним масивом звільняємо пам'ять, виділену для нього:

intMassiv := nil;

Тепер в нашому масиві немає елементів.

Збираємо всі разом: