Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Dynamisk Allokering | Dynamisk Hukommelsesallokering
C++ Pointers og Referencer
Sektion 4. Kapitel 2
single

single

bookDynamisk 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 med new-operatoren.

Note
Bemærk

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[].

Note
Bemærk

Undladelse af at slette dynamisk allokeret hukommelse kan resultere i hukommelseslækager, hvor programmet fastholder hukommelse, der ikke længere er i brug.

Opgave

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.

  1. Opret et dynamisk allokeret array grades til at gemme elevernes karakterer.
  2. Brug funktionen fillRandomGrades til at udfylde arrayet med tilfældige karakterer mellem 60 og 100.
  3. Fuldfør funktionen calculateAverage, så den:
    • Initialiserer variablen sum til 0.
    • Gennemløber arrayet med en for-løkke.
    • Lægger hver karakter til sum.
    • Returnerer gennemsnitskarakteren ved at dividere den samlede sum med antallet af elever.
  4. Husk at frigive den allokerede hukommelse med delete[] i slutningen af programmet for at undgå hukommelseslækager.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt