Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Dynamisk Allokering | Dynamisk Minnetildeling
C++-Pekere og Referanser
Seksjon 4. Kapittel 2
single

single

bookDynamisk Allokering

Sveip for å vise menyen

Dynamisk minneallokering innebærer bruk av operatorene new og delete. Disse operatorene lar deg allokere minne for variabler og arrayer under kjøring, noe som gir større fleksibilitet enn statisk minneallokering.

  • new: operator som brukes til å dynamisk allokere minne for et objekt eller et array av objekter under kjøring;

  • delete: operator som brukes til å frigjøre minne som tidligere ble allokert med new-operatoren.

Note
Merk

En peker som peker til dynamisk allokert minne lagres vanligvis på stakken, men minnet den peker til er allokert på heapen.

For å opprette en heltallsvariabel dynamisk må du bruke en peker sammen med new-nøkkelordet.

int *dynamicInteger = new int;

For å frigjøre dynamisk allokert minne, bruker du delete-operatoren:

delete dynamicInteger;

Gjør det til en regel: Når du bruker new for å allokere minne, bruk alltid delete for å frigjøre det senere.

Dynamisk allokerte arrayer

Når du allokerer minne for arrayer dynamisk, bruk operatoren new[], og når du frigjør minne for dynamisk allokerte arrayer, bruk operatoren delete[].

Note
Merk

Unnlatelse av å slette dynamisk allokert minne kan føre til minnelekkasjer, der programmet beholder minne som ikke lenger er i bruk.

Oppgave

Sveip for å begynne å kode

Tenk deg at du jobber som lærer og skal beregne gjennomsnittskarakteren til en gruppe elever.

Du vil også arbeide med pekere og funksjoner som manipulerer dynamisk allokerte arrayer.

  1. Opprett en dynamisk allokert array grades for å lagre elevenes karakterer.
  2. Bruk funksjonen fillRandomGrades for å fylle arrayen med tilfeldige karakterer mellom 60 og 100.
  3. Fullfør funksjonen calculateAverage slik at den:
    • Initialiserer variabelen sum til 0.
    • Itererer gjennom arrayen med en for-løkke.
    • Legger til hver karakter i sum.
    • Returnerer gjennomsnittskarakteren ved å dele totalen sum på antall elever.
  4. Husk å frigjøre den allokerte minnet ved å bruke delete[] på slutten av programmet for å unngå minnelekkasjer.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

some-alt