Verschil tussen statische en dynamische toewijzing van geheugen

Belangrijkste verschil - Statische versus dynamische toewijzing van geheugen
 

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

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat is statische geheugentoewijzing
3. Wat is toewijzing van dynamisch geheugen
4. Overeenkomsten tussen statische en dynamische toewijzing van geheugen
5. Vergelijking zij aan zij - Statische versus dynamische toewijzing van geheugen in tabelvorm
6. Samenvatting

Wat is statische geheugentoewijzing?

Bij toewijzing van statisch geheugen is het toegewezen geheugen vast. Nadat het geheugen is toegewezen, kan dit niet worden gewijzigd. Het geheugen kan niet worden verhoogd of verlaagd. Bijvoorbeeld in de taal C 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. int x [5]; Deze x is een array die een reeks gegevens kan opslaan die van hetzelfde type zijn. 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 getallen opslaan en kan niet meer dan dat opslaan.

Figuur 01: Geheugentoewijzingsmethoden

Bij statische geheugentoewijzing blijven de variabelen, als ze eenmaal zijn toegewezen, permanent. Na de initiële toewijzing kan het programmeerapparaat het formaat van het geheugen niet wijzigen. Als het programmeerapparaat een array heeft toegewezen die 10 elementen kan opslaan, is het niet mogelijk om waarden meer dan het opgegeven aantal op te slaan. Als het programmeerapparaat aanvankelijk een array heeft toegewezen die 10 elementen kan bevatten, maar slechts 5 elementen nodig heeft, is er sprake van geheugenverlies. Dat geheugen is niet langer nodig, maar het is ook niet mogelijk om het geheugen opnieuw te gebruiken. Statische geheugentoewijzing is vastgesteld, maar de implementatie is eenvoudig en gemakkelijk en het is ook snel.

Wat is toewijzing van dynamisch geheugen?

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

In de C-taal, stdlib.h header-bestand, zijn er vier functies voor dynamische geheugentoewijzing. Ze zijn calloc, malloc, realloc en gratis. De functie malloc () wijst een vereiste grootte van bytes toe en retourneert een lege aanwijzer, wijzend op de eerste byte van het toegewezen geheugen. De functie calloc () wijst een vereiste grootte van bytes toe en initialiseert deze naar nul. Retourneert vervolgens een lege aanwijzer naar het geheugen. De functie free () wordt gebruikt om het toegewezen geheugen opnieuw toe te wijzen. En realloc-functie kan het eerder toegewezen geheugen wijzigen. Nadat geheugen is toegewezen met calloc of malloc, is de geheugengrootte vast, maar deze kan worden verhoogd of verlaagd met de realloc-functie. In Java kunnen collecties worden gebruikt voor dynamische toewijzing van geheugen.

Het belangrijkste voordeel van dynamische geheugentoewijzing is dat het geheugen wordt bespaard. De programmeur kan, indien nodig, 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ënt dan toewijzing van statisch geheugen. Een nadeel is dat het implementeren van dynamische geheugentoewijzing complex is.

Wat zijn de overeenkomsten tussen statische en dynamische toewijzing van geheugen?

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

Wat is het verschil tussen statische en dynamische toewijzing van geheugen?

Statische versus dynamische toewijzing van geheugen

Statische geheugentoewijzing is een methode voor het toewijzen van geheugen en als het geheugen eenmaal is toegewezen, is het vast. Dynamische geheugentoewijzing is een methode voor het toewijzen van geheugen en zodra het geheugen is toegewezen, kan het worden gewijzigd.
 Wijziging
Bij statische geheugentoewijzing is het niet mogelijk om de grootte te wijzigen na de eerste toewijzing. Bij dynamische geheugentoewijzing kan het geheugen worden geminimaliseerd of overeenkomstig worden gemaximaliseerd.
Implementatie
Statische geheugentoewijzing is eenvoudig te implementeren. Dynamische geheugentoewijzing is complex om te implementeren.
 Snelheid
In het statische geheugen is de uitvoering van de toewijzing sneller dan de toewijzing van het dynamische geheugen. In dynamisch geheugen verloopt de uitvoering van de toewijzing langzamer dan de toewijzing van statisch geheugen.
Geheugengebruik
Bij statische geheugentoewijzing kan het ongebruikte geheugen niet opnieuw worden gebruikt. 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 toewijzing van geheugen

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 geheugenomvang vastligt terwijl bij dynamische toewijzing van het geheugen, eenmaal het geheugen is toegewezen, de geheugengrootte kan worden veranderd. De programmeur kan beslissen of het geheugen statisch of dynamisch moet zijn, afhankelijk van de toepassing.

Download de PDF van Static vs Dynamic Memory Allocation

U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden, zoals per citaatnotitie. Download de PDF-versie hier: Verschil tussen statische en dynamische toewijzing van geheugen

Referentie:

1.Kayal, Somnath. "SOMNATH KAYAL." Verschil tussen toewijzing van statisch geheugen en toewijzing van dynamisch geheugen, 1 januari 1970. Beschikbaar Hier 
2.tutorialspoint.com. "Arrays in C." Het punt. Beschikbaar Hier 
3.nareshtechnologies. Statisch geheugen versus dynamisch geheugen | C Language Tutorial, Naresh i Technologies, 19 september 2016. Beschikbaar Hier