Verschil tussen statische en dynamische geheugentoewijzing

Inhoudsopgave:

Verschil tussen statische en dynamische geheugentoewijzing
Verschil tussen statische en dynamische geheugentoewijzing

Video: Verschil tussen statische en dynamische geheugentoewijzing

Video: Verschil tussen statische en dynamische geheugentoewijzing
Video: Basics of Dynamic Memory Allocation 2024, November
Anonim

Belangrijk verschil - Statische versus dynamische geheugentoewijzing

Bij het programmeren is het noodzakelijk om rekengegevens op te slaan. Deze gegevens worden in het geheugen opgeslagen. De geheugenlocaties voor het opslaan van gegevens in computerprogrammering staan bekend als variabelen. De variabelen hebben een specifiek gegevenstype. Daarom wordt het geheugen toegewezen om de programma's uit te voeren. Geheugen kan op twee manieren worden toegewezen. Dit zijn statische geheugentoewijzing en dynamische geheugentoewijzing. Bij statische geheugentoewijzing kan het geheugen niet meer worden gewijzigd als het eenmaal is toegewezen. Het geheugen is niet herbruikbaar. Maar bij dynamische geheugentoewijzing kan het geheugen worden gewijzigd zodra het is toegewezen. Het belangrijkste verschil tussen statische en dynamische geheugentoewijzing is dat bij statische geheugentoewijzing zodra het geheugen is toegewezen, de geheugengrootte vast is, terwijl bij dynamische geheugentoewijzing, zodra het geheugen is toegewezen, de geheugengrootte kan worden gewijzigd.

Wat is statische geheugentoewijzing?

Bij statische geheugentoewijzing is het toegewezen geheugen vast. Als het geheugen eenmaal is toegewezen, kan het niet meer worden gewijzigd. Het geheugen kan niet worden vergroot of verkleind. Bijvoorbeeld in C-taal als de programmeur int x schrijft, wat betekent dat de variabele een geheel getal kan opslaan. Het aantal bytes is afhankelijk van de computer. Er kunnen ook arrays zijn. bijv. intx [5]; Deze x is een array die een reeks gegevens van hetzelfde type kan opslaan. Het kan vijf integer-elementen opslaan. Het kan niet meer dan vijf elementen opslaan. In Java kan een array worden gemaakt als, int arr=new int[5]; De array 'arr' kan 5 gehele waarden opslaan en kan niet meer dan dat opslaan.

Verschil tussen statische en dynamische geheugentoewijzing
Verschil tussen statische en dynamische geheugentoewijzing
Verschil tussen statische en dynamische geheugentoewijzing
Verschil tussen statische en dynamische geheugentoewijzing

Figuur 01: Geheugentoewijzingsmethoden

Bij statische geheugentoewijzing blijven de variabelen, zodra ze zijn toegewezen, permanent. Na de initiële toewijzing kan de programmeur het geheugen niet vergroten of verkleinen. Als de programmeur een array heeft toegewezen die 10 elementen kan opslaan, is het niet mogelijk om meer waarden op te slaan dan dat gespecificeerde aantal. Als de programmeur aanvankelijk een array heeft toegewezen die 10 elementen kan bevatten, maar slechts 5 elementen nodig heeft, is er geheugenverspilling. Dat geheugen is niet meer nodig, maar het is ook niet mogelijk om het geheugen opnieuw te gebruiken. Statische geheugentoewijzing is vast, maar de implementatie is eenvoudig en gemakkelijk, en het is ook snel.

Wat is dynamische geheugentoewijzing?

Soms is het nodig om de grootte van het geheugen te wijzigen. Geheugen kan dus dynamisch worden toegewezen. Afhankelijk van het invoegen en verwijderen van de data-elementen, kan het geheugen groeien of krimpen. Het staat bekend als dynamische geheugentoewijzing.

In C-taal, stdlib.h header-bestand, zijn er vier functies voor dynamische geheugentoewijzing. Ze zijn calloc, malloc, realloc en free. De functie malloc() wijst een vereiste grootte van bytes toe en retourneert een lege pointer, die naar de eerste byte van het toegewezen geheugen wijst. De functie calloc() wijst een vereiste grootte van bytes toe en initialiseert ze op nul. Brengt vervolgens een lege aanwijzer terug naar het geheugen. De functie free() wordt gebruikt om het toegewezen geheugen opnieuw toe te wijzen. En de realloc-functie kan het eerder toegewezen geheugen wijzigen. Na het toewijzen van geheugen met calloc of malloc, ligt de geheugengrootte vast, maar deze kan worden vergroot of verkleind met de realloc-functie. In Java kunnen verzamelingen worden gebruikt voor dynamische geheugentoewijzing.

Het belangrijkste voordeel van dynamische geheugentoewijzing is dat het geheugen bespaart. De programmeur kan naar behoefte geheugen toewijzen of het geheugen vrijgeven. Geheugen kan tijdens de uitvoering opnieuw worden toegewezen en kan het geheugen vrijmaken wanneer dit niet nodig is. Dynamische geheugentoewijzing is ook efficiënter dan statische geheugentoewijzing. Een nadeel is dat het implementeren van dynamische geheugentoewijzing complex is.

Wat zijn de overeenkomsten tussen statische en dynamische geheugentoewijzing?

  • Beide zijn geheugentoewijzingsmechanismen.
  • Beide moeten handmatig door de programmeur worden geïmplementeerd.

Wat is het verschil tussen statische en dynamische geheugentoewijzing?

Statische versus dynamische geheugentoewijzing

Statische geheugentoewijzing is een methode om geheugen toe te wijzen, en als het geheugen eenmaal is toegewezen, is het vast. Dynamische geheugentoewijzing is een methode om geheugen toe te wijzen, en als het geheugen eenmaal is toegewezen, kan het worden gewijzigd.
Wijziging
Bij statische geheugentoewijzing is het niet mogelijk om de grootte te wijzigen na de initiële toewijzing. Bij dynamische geheugentoewijzing kan het geheugen dienovereenkomstig worden geminimaliseerd of gemaximaliseerd.
Implementatie
Statische geheugentoewijzing is eenvoudig te implementeren. Dynamische geheugentoewijzing is moeilijk te implementeren.
Snelheid
In statisch geheugen is de uitvoering van toewijzing sneller dan dynamische geheugentoewijzing. In dynamisch geheugen is de uitvoering van toewijzing langzamer dan statische geheugentoewijzing.
Geheugengebruik
Kan het ongebruikte geheugen niet hergebruiken bij statische geheugentoewijzing. Dynamische geheugentoewijzing maakt hergebruik van het geheugen mogelijk. De programmeur kan indien nodig meer geheugen toewijzen. Hij kan het geheugen vrijgeven als dat nodig is.

Samenvatting – Statische versus dynamische geheugentoewijzing

Bij het programmeren zijn statische geheugentoewijzing en dynamische geheugentoewijzing twee mechanismen voor het toewijzen van geheugen. Het verschil tussen statische en dynamische geheugentoewijzing is dat bij statische geheugentoewijzing zodra het geheugen is toegewezen, de geheugengrootte vast is, terwijl bij dynamische geheugentoewijzing, zodra het geheugen is toegewezen, de geheugengrootte kan worden gewijzigd. Afhankelijk van de toepassing kan de programmeur beslissen of het geheugen statisch of dynamisch moet zijn.

Download de PDF van statische versus dynamische geheugentoewijzing

U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden volgens de citatienota. Download de PDF-versie hier: Verschil tussen statische en dynamische geheugentoewijzing

Aanbevolen: