Verskil tussen statiese en dinamiese geheue-toewysing

INHOUDSOPGAWE:

Verskil tussen statiese en dinamiese geheue-toewysing
Verskil tussen statiese en dinamiese geheue-toewysing

Video: Verskil tussen statiese en dinamiese geheue-toewysing

Video: Verskil tussen statiese en dinamiese geheue-toewysing
Video: Supersection Week 1 2024, Julie
Anonim

Sleutelverskil – Statiese vs Dinamiese geheuetoewysing

In programmering is dit nodig om berekeningsdata te stoor. Hierdie data word in die geheue gestoor. Die geheue liggings vir die stoor van data in rekenaarprogrammering staan bekend as veranderlikes. Die veranderlikes het 'n spesifieke datatipe. Daarom word die geheue toegewys om die programme te laat loop. Geheue kan op twee maniere toegewys word. Hulle is Statiese geheue toekenning en Dinamiese geheue toekenning. In statiese geheue-toewysing, sodra die geheue toegewys is, kan dit nie verander word nie. Die geheue is nie herbruikbaar nie. Maar in dinamiese geheuetoewysing, sodra die geheue toegewys is, kan dit verander word. Die sleutelverskil tussen statiese en dinamiese geheuetoewysing is dat in statiese geheuetoewysing sodra die geheue toegewys is, die geheuegrootte vasgestel is, terwyl in dinamiese geheuetoewysing, sodra die geheue toegewys is, die geheuegrootte verander kan word.

Wat is statiese geheue-toewysing?

In statiese geheue-toewysing is die toegekende geheue vas. Sodra die geheue toegewys is, kan dit nie verander word nie. Die geheue kan nie verhoog of verminder word nie. Byvoorbeeld, in C-taal as die programmeerder int x skryf, wat beteken dat die veranderlike 'n heelgetalwaarde kan stoor. Die aantal grepe hang af van die rekenaar. Daar kan ook skikkings wees. Bv. int x [5]; Hierdie x is 'n skikking wat 'n reeks data kan stoor wat van dieselfde tipe is. Dit kan vyf heelgetalelemente stoor. Dit kan nie meer as vyf elemente stoor nie. In Java kan 'n skikking geskep word as, int arr=new int[5]; Die skikking 'arr' kan 5 heelgetalwaardes stoor en kan nie meer as dit stoor nie.

Verskil tussen statiese en dinamiese geheuetoewysing
Verskil tussen statiese en dinamiese geheuetoewysing
Verskil tussen statiese en dinamiese geheuetoewysing
Verskil tussen statiese en dinamiese geheuetoewysing

Figuur 01: Geheuetoewysingsmetodes

In statiese geheue-toewysing, sodra die veranderlikes toegewys is, bly hulle permanent. Na die aanvanklike toekenning kan die programmeerder nie die grootte van die geheue verander nie. As die programmeerder 'n skikking toegewys het wat 10 elemente kan stoor, is dit nie moontlik om waardes meer as daardie gespesifiseerde hoeveelheid te stoor nie. As die programmeerder aanvanklik 'n skikking toegewys het wat 10 elemente kan hou, maar net 5 elemente nodig gehad het, dan is daar 'n geheuevermorsing. Daardie geheue is nie meer nodig nie, maar dit is ook nie moontlik om die geheue te hergebruik nie. Statiese geheue-toewysing is vas, maar die implementering is eenvoudig en maklik, en dit is ook vinnig.

Wat is dinamiese geheuetoewysing?

Soms is dit nodig om die grootte van die geheue te verander. Geheue kan dus dinamies toegewys word. Afhangende van invoegings en verwyderings van die data-elemente, kan die geheue groei of krimp. Dit staan bekend as dinamiese geheuetoewysing.

In C-taal, stdlib.h-koplêer, is daar vier funksies vir dinamiese geheuetoewysing. Hulle is calloc, malloc, realloc en gratis. Die funksie malloc() ken 'n vereiste grootte grepe toe en gee 'n leemtewyser terug, wat die eerste greep van die toegekende geheue wys. Die funksie calloc() ken 'n vereiste grootte grepe toe en inisialiseer dit na nul. Stuur dan 'n leemtewyser na die geheue terug. Die free() funksie word gebruik om die toegekende geheue te hertoewys. En realloc-funksie kan die voorheen toegekende geheue verander. Na die toekenning van geheue met behulp van calloc of malloc, is die geheue grootte vas, maar hulle kan verhoog of verminder word met behulp van die realloc funksie. In Java kan versamelings vir dinamiese geheuetoewysing gebruik word.

Die grootste voordeel van dinamiese geheue-toewysing is dat dit geheue bespaar. Die programmeerder kan geheue toewys of die geheue vrystel soos nodig. Geheue kan hertoegewys word tydens uitvoering en kan die geheue bevry wanneer dit nie nodig is nie. Dinamiese geheue toekenning is ook doeltreffend as statiese geheue toekenning. Een nadeel is dat die implementering van dinamiese geheuetoewysing kompleks is.

Wat is die ooreenkomste tussen statiese en dinamiese geheuetoewysing?

  • Albei is geheuetoewysingsmeganismes.
  • Albei moet met die hand deur die programmeerder geïmplementeer word.

Wat is die verskil tussen statiese en dinamiese geheuetoewysing?

Statiese vs dinamiese geheuetoewysing

Statiese geheue-toewysing is 'n metode om geheue toe te ken, en sodra die geheue toegewys is, is dit vasgestel. Dynamiese geheue-toewysing is 'n metode om geheue toe te ken, en sodra die geheue toegewys is, kan dit verander word.
Wysiging
In statiese geheue-toewysing is dit nie moontlik om grootte te verander na aanvanklike toewysing nie. In dinamiese geheue-toewysing kan die geheue geminimaliseer of dienooreenkomstig maksimeer word.
Implementasie
Statiese geheue-toewysing is maklik om te implementeer. Dynamiese geheue-toewysing is kompleks om te implementeer.
Spoed
In statiese geheue is toekenningsuitvoering vinniger as dinamiese geheuetoewysing. In dinamiese geheue is toekenningsuitvoering stadiger as statiese geheuetoewysing.
Geheuegebruik
In statiese geheue-toewysing, kan nie die ongebruikte geheue hergebruik nie. Dynamiese geheue-toewysing laat die hergebruik van die geheue toe. Die programmeerder kan meer geheue toewys wanneer nodig. Hy kan die geheue vrystel wanneer nodig.

Opsomming – Statiese vs Dinamiese geheuetoewysing

In programmering is Statiese geheuetoewysing en dinamiese geheuetoewysing twee meganismes vir die toewysing van geheue. Die verskil tussen statiese en dinamiese geheue toewysing is dat in statiese geheue toewysing sodra die geheue toegewys is, die geheue grootte vas is terwyl in dinamiese geheue toewysing, sodra die geheue toegeken is, die geheue grootte verander kan word. Die programmeerder kan besluit of die geheue staties of dinamies moet wees, afhangende van die toepassing.

Laai die PDF van Static vs Dynamic Memory Allocation af

Jy kan die PDF-weergawe van hierdie artikel aflaai en dit vir vanlyn doeleindes gebruik soos per aanhalingsnota. Laai asseblief die PDF-weergawe hier af: Verskil tussen statiese en dinamiese geheuetoewysing

Aanbeveel: