Різниця між розподілом статичної та динамічної пам'яті

Ключова різниця - розподіл статичної та динамічної пам'яті
 

У програмуванні необхідно зберігати обчислювальні дані. Ці дані зберігаються в пам'яті. Місця пам'яті для зберігання даних в комп'ютерному програмуванні відомі як змінні. Змінні мають певний тип даних. Тому пам'ять виділяється для запуску програм. Пам'ять можна розподілити двома способами. Вони є статичним розподілом пам'яті та динамічним розподілом пам'яті. При статичному розподілі пам’яті, як тільки пам'ять розподіляється, її неможливо змінити. Пам'ять не використовується повторно. Але при динамічному розподілі пам'яті, як тільки пам'ять буде виділена, її можна змінити. The ключова різниця між статичним та динамічним розподілом пам’яті є те, що у статичному розподілі пам'яті після розподілу пам’яті розмір пам’яті фіксується під час динамічного розподілу пам’яті. Після розподілу пам’яті розмір пам’яті можна змінити.

ЗМІСТ

1. Огляд та ключові відмінності
2. Що таке виділення статичної пам'яті
3. Що таке розподілення динамічної пам'яті
4. Подібність між розподілом статичної та динамічної пам'яті
5. Порівняльне порівняння - розподіл статичної та динамічної пам'яті у табличній формі
6. Підсумок

Що таке виділення статичної пам'яті?

При статичному розподілі пам’яті виділена пам’ять фіксується. Після того як пам'ять буде виділена, її неможливо змінити. Пам'ять не може бути збільшена або зменшена. Наприклад, на мові C, якщо програміст пише int x, а це означає, що змінна може зберігати ціле число. Кількість байтів залежить від комп'ютера. Також можуть бути масиви. Наприклад int x [5]; Цей х - масив, який може зберігати послідовність даних одного типу. Він може зберігати п'ять цілих елементів. Він не може зберігати більше п'яти елементів. У Java масив можна створити як, int arr [] = new int [5]; Масив 'arr' може зберігати 5 цілих значень і не може зберігати більше, ніж це.

Малюнок 01: Методи розподілу пам'яті

У статичному розподілі пам’яті, після розподілу змінних, вони залишаються постійними. Після початкового розподілу програміст не може змінити розмір пам'яті. Якщо програміст виділив масив, який може зберігати 10 елементів, не можна зберігати значення більше зазначеної суми. Якщо програміст спочатку виділив масив, який може вмістити 10 елементів, але потрібно лише 5 елементів, то відбувається втрата пам'яті. Ця пам'ять більше не потрібна, але також неможливо повторно використовувати пам'ять. Статичний розподіл пам’яті фіксовано, але реалізація проста і проста, а також швидка.

Що таке розподілення динамічної пам'яті?

Іноді доводиться змінювати розмір пам'яті. Тож пам’ять можна розподіляти динамічно. Залежно від вставок і видалень елементів даних, пам'ять може зростати або скорочуватися. Він відомий як динамічний розподіл пам'яті.

У мові C, заголовочному файлі stdlib.h, є чотири функції для динамічного розподілу пам'яті. Вони calloc, malloc, realloc та вільні. Функція malloc () виділяє необхідний розмір байтів і повертає порожній покажчик, вказуючи на перший байт виділеної пам'яті. Функція calloc () виділяє необхідний розмір байтів і ініціалізує їх до нуля. Потім повертає недійсний покажчик у пам'ять. Функція free () використовується для перерозподілу виділеної пам'яті. І функція realloc може змінювати раніше виділену пам'ять. Після розподілу пам'яті за допомогою calloc або malloc розмір пам’яті фіксується, але їх можна збільшувати або зменшувати за допомогою функції realloc. У Java колекції можуть використовуватися для динамічного розподілу пам'яті.

Основна перевага динамічного розподілу пам’яті - це економія пам’яті. Програміст може виділити пам'ять або звільнити пам'ять за потребою. Пам'ять може бути перерозподілена під час виконання та може звільнити пам'ять, коли вона не потрібна. Динамічний розподіл пам'яті також ефективний, ніж статичний розподіл пам'яті. Одним недоліком є ​​те, що реалізація динамічного розподілу пам'яті є складною.

Які подібності між розподілом статичної та динамічної пам'яті?

  • Обидва є механізмами розподілу пам'яті.
  • Обидва програми повинні бути реалізовані програмістом вручну.

Яка різниця між розподілом статичної та динамічної пам'яті?

Статичне розподілення проти динамічної пам'яті

Статичний розподіл пам’яті - це метод розподілу пам’яті, і як тільки пам'ять розподіляється, вона фіксується. Динамічний розподіл пам’яті - це метод розподілу пам’яті, і як тільки пам'ять буде виділена, її можна змінити.
 Модифікація
У статичному розподілі пам'яті неможливо змінити розмір після початкового розподілу. При динамічному розподілі пам’яті пам'ять можна мінімізувати або збільшити відповідно.
Впровадження
Статичний розподіл пам'яті легко здійснити. Динамічний розподіл пам’яті складно реалізувати.
 Швидкість
У статичній пам'яті виконання розподілу відбувається швидше, ніж динамічне розподілення пам'яті. У динамічній пам'яті виконання розподілу відбувається повільніше, ніж статичне розподілення пам'яті.
Використання пам'яті
При розподілі статичної пам'яті не можна використовувати невикористану пам'ять. Динамічний розподіл пам'яті дозволяє повторно використовувати пам'ять. Програміст може виділити більше пам'яті, коли потрібно. Він може звільнити пам'ять при необхідності.

Підсумок - Статичне розподілення проти динамічної пам'яті

У програмуванні статичне розподілення пам’яті та динамічне розподілення пам’яті є двома механізмами розподілу пам’яті. Різниця між статичним та динамічним розподілом пам’яті полягає в тому, що при розподілі статичної пам’яті після розподілу пам’яті розмір пам’яті фіксується під час динамічного розподілу пам’яті, після розподілу пам’яті розмір пам’яті можна змінити. Програміст може вирішити, чи має бути пам'ять статичною чи динамічною залежно від програми.

Завантажте PDF-файл розподілу статичної та динамічної пам'яті

Ви можете завантажити PDF-версію цієї статті та використовувати її в офлайн-цілях відповідно до примітки. Завантажте PDF-версію тут: Різниця між розподілом статичної та динамічної пам'яті

Довідка:

1.Каял, Сомнат. "СОНЯТ КАЯЛ". Різниця між розподілом статичної пам'яті та розподіленням динамічної пам'яті, 1 січня 1970 р. Доступна тут 
2.tutorialspoint.com. "Масиви в C." Точка. Доступний тут 
3.натехнології. Статична пам'ять проти динамічної пам'яті | Мовний підручник C, Naresh i Technologies, 19 вересня 2016. Доступний тут