Формування динамічних масивів з використанням бібліотечних функцій

Для виділення й звільнення динамічної пам'яті використаються функції

Функція Прототип і короткий опис
malloc void * malloc(unsigned s) Повертає покажчик на початок області динамічної пам'яті довжиною в s байт, при невдалому завершенні повертає NULL
calloc void * calloc(unsigned n, unsigned m) Повертає покажчик на початок області динамічної пам'яті для розміщення n елементів довжиною по m байт кожний, при невдалому завершенні повертає NULL
realloc void * realloc(void * p, unsigned s) Змінює розмір блоку раніше виділеної динамічної пам'яті до розміру s байт, р- адреса початку змінюваного блоку, при невдалому завершенні повертає NULL
free void *free(void p) Звільняє раніше виділену ділянку динамічної пам'яті, р - адреса першого байта

Приклад:

Функція для формування одномірного динамічного масиву

int * make_mas(int n)

(

int *mas;

mas=(int*)malloc(n*sizeof(int));

for(int i=0;i<n;i++)

mas[i]=random(10);

return mas;

}

Для виділення пам'яті використається функція malloc, параметром якої є розмір виділюваної ділянки пам'яті рівний n*sizeof(int). Тому що функція malloc повертає нетипізований покажчик void*, те необхідно виконати перетворення отриманого нетипізованого покажчика в покажчик int*.

Звільнити виділену пам'ять можна функцією free(mas).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: