Контрольні запитання
Представлення масиву у пам’яті
При об’яві одновимірного масиву
тип ім’я_масиву [n];
в пам’яті виділяється 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. Що працює швидше: індекси або покажчики?