single
Dynamisk Allokering
Stryg for at vise menuen
Dynamisk hukommelsesallokering involverer brugen af operatorerne new og delete. Disse operatorer gør det muligt at allokere hukommelse til variabler og arrays under kørsel, hvilket giver større fleksibilitet end statisk hukommelsesallokering.
-
new: operator, der bruges til dynamisk at allokere hukommelse til et objekt eller et array af objekter under kørsel; -
delete: operator, der bruges til at frigive hukommelse, som tidligere er blevet allokeret mednew-operatoren.
En pointer, der peger på dynamisk allokeret hukommelse, gemmes typisk på stakken, men den hukommelse, den peger på, er allokeret på heapen.
For at oprette en heltalsvariabel dynamisk skal du bruge en pointer sammen med new-nøgleordet.
int *dynamicInteger = new int;
For at frigøre den dynamisk allokerede hukommelse, anvendes operatoren delete:
delete dynamicInteger;
Gør det til en regel: Når du bruger new til at allokere hukommelse, skal du altid bruge delete til at frigøre den senere.
Dynamisk allokerede arrays
Ved dynamisk allokering af hukommelse til arrays anvendes operatoren new[], og ved frigivelse af hukommelse for dynamisk allokerede arrays anvendes operatoren delete[].
Undladelse af at slette dynamisk allokeret hukommelse kan resultere i hukommelseslækager, hvor programmet fastholder hukommelse, der ikke længere er i brug.
Swipe to start coding
Forestil dig, at du arbejder som lærer og skal beregne gennemsnitskarakteren for en gruppe elever.
Du vil også arbejde med pointere og funktioner, der manipulerer dynamisk allokerede arrays.
- Opret et dynamisk allokeret array
gradestil at gemme elevernes karakterer. - Brug funktionen
fillRandomGradestil at udfylde arrayet med tilfældige karakterer mellem 60 og 100. - Fuldfør funktionen
calculateAverage, så den:- Initialiserer variablen
sumtil 0. - Gennemløber arrayet med en
for-løkke. - Lægger hver karakter til
sum. - Returnerer gennemsnitskarakteren ved at dividere den samlede
summed antallet af elever.
- Initialiserer variablen
- Husk at frigive den allokerede hukommelse med
delete[]i slutningen af programmet for at undgå hukommelseslækager.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat