Статикалық және динамикалық жадты бөлу арасындағы айырмашылық

Мазмұны:

Статикалық және динамикалық жадты бөлу арасындағы айырмашылық
Статикалық және динамикалық жадты бөлу арасындағы айырмашылық

Бейне: Статикалық және динамикалық жадты бөлу арасындағы айырмашылық

Бейне: Статикалық және динамикалық жадты бөлу арасындағы айырмашылық
Бейне: Жахина Р У Программалау 2 МКО, 2 ФКО №5 лекция Жартылай статикалық құрылымдар Жолдарды өңдеу алг 2024, Шілде
Anonim

Негізгі айырмашылық – статикалық және динамикалық жадты бөлу

Бағдарламалауда есептеу деректерін сақтау қажет. Бұл деректер жадта сақталады. Компьютерлік бағдарламалауда деректерді сақтауға арналған жад орындары айнымалылар деп аталады. Айнымалылардың белгілі бір деректер түрі болады. Сондықтан жады бағдарламаларды іске қосу үшін бөлінген. Жадты екі жолмен бөлуге болады. Олар статикалық жадты бөлу және динамикалық жадты бөлу. Статикалық жадты бөлу кезінде жад бөлінгеннен кейін оны өзгерту мүмкін емес. Жадты қайта пайдалануға болмайды. Бірақ динамикалық жадты бөлуде жад бөлінгеннен кейін оны өзгертуге болады. Статикалық және динамикалық жадты бөлудің негізгі айырмашылығы мынада: жад бөлінгеннен кейін статикалық жадты бөлу кезінде жад көлемі динамикалық жадты бөлу кезінде бекітіледі, жад бөлінгеннен кейін жад өлшемін өзгертуге болады.

Статикалық жадты бөлу дегеніміз не?

Статикалық жадты бөлу кезінде бөлінген жад бекітіледі. Жад бөлінгеннен кейін оны өзгерту мүмкін емес. Жадты көбейту немесе азайту мүмкін емес. Мысалы, Си тілінде егер бағдарламашы int x жазса, бұл айнымалы бүтін мәнді сақтай алатынын білдіреді. Байттар саны компьютерге байланысты. Сондай-ақ массивтер болуы мүмкін. Мысалы, int x [5]; Бұл x - бір типтегі деректер тізбегін сақтай алатын массив. Ол бес бүтін элементті сақтай алады. Ол бес элементтен артық сақтай алмайды. Java тілінде массив келесі түрде жасалуы мүмкін, int arr=new int[5]; 'arr' массиві 5 бүтін мәнді сақтай алады және одан көп сақтай алмайды.

Статикалық және динамикалық жадты бөлу арасындағы айырмашылық
Статикалық және динамикалық жадты бөлу арасындағы айырмашылық
Статикалық және динамикалық жадты бөлу арасындағы айырмашылық
Статикалық және динамикалық жадты бөлу арасындағы айырмашылық

01-сурет: жадты бөлу әдістері

Статикалық жадты бөлуде айнымалылар бөлінгеннен кейін олар тұрақты болып қалады. Бастапқы бөлуден кейін бағдарламашы жад өлшемін өзгерте алмайды. Егер бағдарламашы 10 элементті сақтай алатын массив бөлсе, көрсетілген мөлшерден артық мәндерді сақтау мүмкін емес. Егер бағдарламашы бастапқыда 10 элементті ұстай алатын массив бөлсе, бірақ тек 5 элемент қажет болса, онда жадтың ысыраптығы болады. Бұл жад енді қажет емес, бірақ жадты қайта пайдалану да мүмкін емес. Статикалық жадты бөлу бекітілген, бірақ іске асыру қарапайым және оңай, сонымен қатар ол жылдам.

Динамикалық жадты бөлу дегеніміз не?

Кейде жад өлшемін өзгерту қажет болады. Сондықтан жадты динамикалық түрде бөлуге болады. Деректер элементтерін кірістіру мен жоюға байланысты жад ұлғаюы немесе кішірейуі мүмкін. Ол динамикалық жадты бөлу ретінде белгілі.

С тілінде stdlib.h тақырып файлында динамикалық жадты бөлуге арналған төрт функция бар. Олар calloc, malloc, realloc және тегін. malloc() функциясы байттардың қажетті өлшемін бөледі және бөлінген жадтың бірінші байтын көрсететін бос көрсеткішті қайтарады. calloc() функциясы байттардың қажетті өлшемін бөледі және оларды нөлге дейін инициализациялайды. Содан кейін жадқа бос көрсеткішті қайтарады. Free() функциясы бөлінген жадты қайта бөлу үшін қолданылады. Және realloc функциясы бұрын бөлінген жадты өзгерте алады. Calloc немесе malloc көмегімен жадты бөлгеннен кейін жад өлшемі бекітіледі, бірақ оларды realloc функциясы арқылы ұлғайтуға немесе азайтуға болады. Java тілінде жинақтарды динамикалық жадты бөлу үшін пайдалануға болады.

Динамикалық жадты бөлудің басты артықшылығы - ол жадты үнемдейді. Бағдарламалаушы жадты бөле алады немесе қажет болған жағдайда жадты босатады. Жадты орындау кезінде қайта бөлуге болады және қажет емес кезде жадты босатуға болады. Динамикалық жадты бөлу статикалық жадты бөлуге қарағанда тиімді. Бір кемшілігі - динамикалық жадты бөлуді жүзеге асыру күрделі.

Статикалық және динамикалық жадты бөлудің қандай ұқсастықтары бар?

  • Екеуі де жадты бөлу механизмдері.
  • Екеуін де бағдарламашы қолмен орындауы керек.

Статикалық және динамикалық жадты бөлудің арасындағы айырмашылық неде?

Статикалық және динамикалық жадты бөлу

Статикалық жадты бөлу - жадты бөлу әдісі және жад бөлінгеннен кейін ол бекітіледі. Динамикалық жадты бөлу – жадты бөлу әдісі және жад бөлінгеннен кейін оны өзгертуге болады.
Өзгерту
Статикалық жадты бөлу кезінде бастапқы бөлуден кейін өлшемін өзгерту мүмкін емес. Динамикалық жадты бөлу кезінде жадты сәйкесінше азайтуға немесе үлкейтуге болады.
Іске асыру
Статикалық жадты бөлу оңай орындалады. Динамикалық жадты бөлуді орындау қиын.
Жылдамдық
Статикалық жадта бөлуді орындау динамикалық жадты бөлуге қарағанда жылдамырақ. Динамикалық жадта бөлуді орындау статикалық жадты бөлуге қарағанда баяуырақ.
Жадты пайдалану
Статикалық жадты бөлуде пайдаланылмаған жадты қайта пайдалану мүмкін емес. Динамикалық жадты бөлу жадты қайта пайдалануға мүмкіндік береді. Қажет болған жағдайда бағдарламашы көбірек жадты бөле алады. Қажет кезде ол жадты босатады.

Қорытынды – Статикалық және динамикалық жадты бөлу

Бағдарламалауда статикалық жадты бөлу және динамикалық жадты бөлу жадты бөлудің екі механизмі болып табылады. Статикалық және динамикалық жадты бөлудің айырмашылығы мынада: жад бөлінгеннен кейін статикалық жадты бөлуде жад көлемі динамикалық жадты бөлу кезінде бекітіледі, жад бөлінгеннен кейін жад өлшемін өзгертуге болады. Бағдарламалаушы қолданбаға байланысты жадтың статикалық немесе динамикалық болуы керектігін шеше алады.

Статикалық және динамикалық жадты бөлу PDF файлын жүктеп алыңыз

Сіз осы мақаланың PDF нұсқасын жүктеп алып, сілтеме жазбасына сәйкес офлайн мақсаттарда пайдалана аласыз. PDF нұсқасын мына жерден жүктеп алыңыз: Статикалық және динамикалық жадты бөлу арасындағы айырмашылық

Ұсынылған: