Рейтинг користувача: 5 / 5

Активна зіркаАктивна зіркаАктивна зіркаАктивна зіркаАктивна зірка
 

ДИНАМІЧНА ПАМ’ЯТЬ

МЕТОДИЧНІ ВКАЗІВКИ

до лабораторної роботи № 11

з дисципліни ”Алгоритмізація та програмування”

для студентів спеціальності 122 ”Комп’ютерні науки”

 

Затверджено

на засіданні кафедри інформаційних систем та мереж

Протокол №__ від _____.2018 р.

Львів-2018

 

Динамічна пам’ять: Методичні вказівки до лабораторної роботи № 11 / Укл.: В.А. Висоцька. – Львів: Видавництво Національного університету ”Львівська політехніка”, 2018. – 29 с.

Укладачі                     Висоцька В.А., к.т.н., доцент

                         

 

Відповідальний за випуск Литвин В.В., д.т.н., професор

Рецензенти     Верес О.М., к.т.н., доцент

                          Берко А.Ю., д.т.н., професор

                          Ришковець Ю.В., к.т.н., старший викладач

 

Мета роботи: ознайомитись із поняттям динамічної пам’яті на мовi Сі.

1.       Теоретичні відомості

1.1.          Загальні поняття

Динамічна пам’ять (heap, купа) – це пам’ять, в якій змінні розміщуються динамічно. Основна потреба у динамічному виділенні пам’яті виникає тоді, коли розмір або кількість даних, які необхідно виділити чи використати, наперед невідомі і визначаються у процесі виконання програми.

Засоби динамічного управління пам’яттю дають змогу розширити можливості програмування. Під час свого виконання програма отримує можливість самостійно визначати потрібні розміри пам’яті і за потреби в реальному часі створювати та знищувати динамічні об’єкти.

Основні відмінності динамічного масива від статичного такі:

  • пам’ять для динамічного масива виділяється під час виконання програми за допомогою певних функцій;
  • кількість елементів динамічного масива може бути задано змінною, але в програмі вона обов’язково визначена до виділення пам’яті для масива.

Динамічні об’єкти не є локальними для певної функції (локальною може бути змінна, що містить адресу такого об’єкта). Вони можуть створюватись в одній функції, опрацьовуватись у другій (якщо перша повідомить їй адресу об’єкта), а знищуватись у третій. Таким чином, динамічний об’єкт доступний з будь-якої функції програми, якій відома його адреса.

Час життя динамічного об’єкта – це час від моменту його створення до знищення, тобто динамічно виділена пам’ять існує поки її не звільнити. Якщо динамічно виділену пам’ять не звільнити, то в операційній системі може виникнути ситуація нестачі вільної пам’яті.

(Для ознайомлення з повним текстом статті необхідно залогінитись)