Разлика между разпределение на статична и динамична памет

Ключова разлика - разпределение на статична срещу динамична памет
 

При програмирането е необходимо да се съхраняват изчислителни данни. Тези данни се съхраняват в паметта. Местата на паметта за съхранение на данни в компютърното програмиране са известни като променливи. Променливите имат специфичен тип данни. Следователно паметта се разпределя за стартиране на програмите. Паметта може да бъде разпределена по два начина. Те са статично разпределение на паметта и динамично разпределение на паметта. При статично разпределение на паметта, след като паметта е разпределена, тя не може да бъде променена. Паметта не може да се използва повторно. Но при динамично разпределение на паметта, след като паметта е разпределена, тя може да бъде променена. Най- ключова разлика между статично и динамично разпределение на паметта е това при статично разпределение на паметта, след като паметта е разпределена, размерът на паметта е фиксиран, докато е в динамично разпределение на паметта, след като е разпределена паметта, размерът на паметта може да бъде променен.

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е разпределение на статична памет
3. Какво е разпределение на динамичната памет
4. Прилики между разпределението на статична и динамична памет
5. Паралелно сравнение - разпределение на статична срещу динамична памет в таблична форма
6. Резюме

Какво е разпределение на статична памет?

При статично разпределение на паметта разпределената памет е фиксирана. След като паметта е разпределена, тя не може да бъде променена. Паметта не може да бъде увеличена или намалена. Например на език C, ако програмистът напише int x, което означава, че променливата може да съхранява цяло число. Броят байтове зависи от компютъра. Може да има и масиви. Например int x [5]; Този x е масив, който може да съхранява последователност от данни, които са от същия тип. Той може да съхранява пет цели числа. Не може да съхранява повече от пет елемента. В 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.nareshtechnologies. Статична памет срещу динамична памет | Урок за езика на C, Naresh i Technologies, 19 септември 2016 г. Достъпно тук