Hvad er statisk tildeling?

Når du skriver computerkode, er der mange ting, du skal forstå. Hvert programmeringssprog er forskelligt med sit eget sæt syntaks og strukturer. En af de ting, der er fælles på tværs af mange programmeringssprog, er behovet for at indstille variabler. Variabler gemmer data på en måde, der kan refereres til i fremtiden.

Du kan tildele forskellige værdier til en variabel, såsom tekststrenge, tal eller en række data, blandt mange andre ting. Mange sprog kræver, at du erklærer, hvilken type data der vil blive gemt i en variabel, der f.eks. begrænser dig til kun tal.

En anden ting, der adskiller sig mellem programmeringssprog, er behovet for at erklære allokeringstypen for en variabel. Nogle sprog kræver ikke dette, mens andre er strenge. Der er to hovedallokeringstyper: Statisk og Dynamisk.

Statisk vs. Dynamisk

En statisk variabel er en variabel, som har sin størrelse bestemt, før applikationen nogensinde køres. Det er indstillet på kompileringstidspunktet af compileren. For eksempel kan en streng defineres, der har en endelig længde. Den hukommelsesplads, der er nødvendig for at gemme en lang streng, allokeres derefter statisk af compileren.

Alternativet er dynamisk allokering. Her indstilles størrelsen af ​​variablen af ​​programmet, mens det kører. Programmet indeholder logik til at justere mængden af ​​hukommelse, der er allokeret til variablen, så den kan ændre sig over tid, hvis der er behov for mere eller mindre plads. Dette giver typisk mere fleksibilitet i hukommelsesbrug end statisk tildeling, men det koster lidt af en ydeevne. En af de vigtigste fordele ved dynamisk allokering er, at den ikke behøver at blive allokeret, før den er nødvendig. Hukommelsen kan frigøres, når den ikke længere er nødvendig, selvom programmet stadig kører.

Variabler, der er statisk allokeret, gemmes permanent i hukommelsen. Dermed ikke sagt, at programmet ikke kan ændre værdien, der er gemt i variablen. I stedet betyder det, at mængden af ​​hukommelse, som variablen optager, aldrig kan ændres. Selvom du ændrer variablen fra en stor værdi til en lille, kan du ikke frigive noget af den nu unødvendige hukommelsesplads. Du kan heller ikke øge mængden af ​​ledig plads. Dette kan være et problem, hvis variablen er beregnet til at gemme brugerinput med variabel længde.

Funktioner og underrutiner

Statiske variabler gemmes i stakken i stedet for i heapen. Det betyder, at de forbliver tilgængelige i det tilfælde, hvor de blev oprettet. Statisk allokerede variabler i hoveddelen af ​​et program forbliver gyldige og i hukommelsen i hele den tid, applikationen kører. Dette skyldes, at applikationens stak altid er der. Når en separat funktion eller klasse kaldes, får den sin post på stakken, hvori nye statisk allokerede variabler kan lagres. Hukommelsen for disse variabler kan frigives, når klassen er lukket, da posten er hoppet af stakken.

Konklusion

Statisk allokering er at allokere hukommelsesplads til en variabel - compileren låser den mængde plads, der er nødvendig på kompileringstidspunktet. Mens variablens værdi kan ændre sig, kan mængden af ​​plads, der er allokeret til den, ikke. Denne grænse forhindrer plads i at blive frigjort, hvis det ikke er nødvendigt. Det forhindrer også, at der bliver stillet mere plads til rådighed, hvis det er nødvendigt. Statisk allokering har en præstationsfordel i forhold til dynamisk allokering, men er mindre fleksibel. Typisk bruges både statiske og dynamiske variable, da de begge giver fordele.


Leave a Comment

Sådan Fixer du GeForce Now Fejlkode 0xC272008F

Sådan Fixer du GeForce Now Fejlkode 0xC272008F

Du er klar til en aften med gaming, og det bliver en stor aften - du har lige hentet "Star Wars Outlaws" på GeForce Now streamingtjenesten. Opdag den eneste kendte løsning, der viser dig, hvordan du kan fikse GeForce Now Fejlkode 0xC272008F, så du kan begynde at spille Ubisoft-spil igen.

Sådan forbinder du Windows 11 bærbar computer til projector/TV

Sådan forbinder du Windows 11 bærbar computer til projector/TV

Læs denne artikel for at lære om den enkle trin-for-trin proces for at forbinde en bærbar computer til en projector eller TV på Windows 11 og Windows 10 OS.

Sådan Finder Du IP-adressen til en Printer

Sådan Finder Du IP-adressen til en Printer

Har du problemer med at finde ud af, hvilken IP-adresse din printer bruger? Vi viser dig, hvordan du finder den.

3D Printning Grundlæggende: Vedligeholdelsestips til din 3D-printer

3D Printning Grundlæggende: Vedligeholdelsestips til din 3D-printer

At holde dine 3D-printere er meget vigtigt for at få de bedste resultater. Her er nogle vigtige tips at huske på.

3D Printning Grundlæggende: En Nødvendig Vedligeholdelseskontrolliste

3D Printning Grundlæggende: En Nødvendig Vedligeholdelseskontrolliste

At holde dit udstyr i god stand er et must. Her er nogle nyttige tips til at holde din 3D-printer i topstand.

5 Årsager til, at din bærbare computer overophedes

5 Årsager til, at din bærbare computer overophedes

Find ud af nogle af de mulige årsager til, at din bærbare computer overopheder, sammen med tips og tricks til at undgå dette problem og holde din enhed kølig.

Fejlfinding Printeren siger, at dokumenter venter

Fejlfinding Printeren siger, at dokumenter venter

I denne vejledning fokuserer vi på fejlfinding af printerproblemer, hvor printeren viser, at dokumenter venter. Følg vores tips for at løse dette problem.

Sådan klones en harddisk

Sådan klones en harddisk

I den moderne digitale tidsalder, hvor data er et værdifuldt aktiv, kan kloning af en harddisk på Windows være en afgørende proces for mange. Denne omfattende guide

Sådan repareres driveren WUDFRd kunne ikke indlæses på Windows 10?

Sådan repareres driveren WUDFRd kunne ikke indlæses på Windows 10?

Står du over for fejlmeddelelsen, mens du starter din computer, som siger, at driveren WUDFRd ikke kunne indlæses på din computer?

Sådan rettes NVIDIA GeForce Experience-fejlkode 0x0003

Sådan rettes NVIDIA GeForce Experience-fejlkode 0x0003

Oplever du NVIDIA GeForce-oplevelsesfejlkode 0x0003 på dit skrivebord? Hvis ja, læs bloggen for at finde ud af, hvordan du løser denne fejl hurtigt og nemt.