в пам’яті виділяється n-елементів вказаного типу (n – розмірність масиву) та створюється змінна, що є покажчиком на нульовий елемент масиву (ім’я масиву)
int a[10];
a[0] a[1] a[9]
int int int
•
a Рисунок 4.1 – Представлення одномірного масива у пам’яті
При об’яві двомірного масиву int b[5][5], розподіл пам’яті відбудеться відповідно до рис. 4.2.
int **
•
b
•
•
int int int int int
b[0]
b[1]
b[2] …
b[3]
b[4]
b[4][0] b[4][4]
int *
Рисунок 4.2 – Представлення двомірного масива у пам’яті
Для виділення динамічної пам’яті використовують оператор new:
змінна_покажчик = new тип;
змінна_покажчик = new тип [];
Для звільнення динамічної пам’яті використовують оператор delete:
delete змінна_покажчик;
delete [розмірність] ім’я_масву;
Для виділення місця в пам’яті під динамічний масив необхідно виконати наступні кроки:
int *a;
a = new int [n];
Під двовимірний масив:
int **b;
b = new int * [n];
for (int i=0; i<n; i++)
b[i] = new int [m];
Контрольні запитання
1. Що таке покажчик?
2. Які матричні операції можливо використовувати з покажчиками?
3. Що спільного між покажчиком та масивом?
4. Коли використовується динамічна пам’ять?
5. Як звільнити динамічну пам’ять?
6. Що таке динамічна пам’ять?
7. Представлення двовимірного масиву у пам’яті?
8. Що працює швидше: індекси або покажчики?
Лабораторна робота №5 Програмування задач по обробці послідовності символів