Контрольні запитання

Представлення масиву у пам’яті

При об’яві одновимірного масиву

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