Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Dynamisk Allokering | Dynamisk Minnesallokering
C++-Pekare och Referenser
Avsnitt 4. Kapitel 2
single

single

bookDynamisk Allokering

Svep för att visa menyn

Dynamisk minnesallokering innebär att använda operatorerna new och delete. Dessa operatorer gör det möjligt att allokera minne för variabler och arrayer under körning, vilket ger större flexibilitet än statisk minnesallokering.

  • new: operator som används för att dynamiskt allokera minne för ett objekt eller en array av objekt under körning;

  • delete: operator som används för att frigöra minne som tidigare har allokerats med operatorn new.

Note
Notera

En pekare som pekar på dynamiskt allokerat minne lagras vanligtvis på stacken, men minnet som den pekar på är allokerat på heapen.

För att skapa en heltalsvariabel dynamiskt måste du använda en pekare tillsammans med nyckelordet new.

int *dynamicInteger = new int;

För att frigöra det dynamiskt allokerade minnet används operatorn delete:

delete dynamicInteger;

Gör det till en regel: när du använder new för att allokera minne, använd alltid delete för att frigöra det senare.

Dynamiskt allokerade arrayer

Vid dynamisk minnesallokering för arrayer används operatorn new[], och vid frigöring av minne för dynamiskt allokerade arrayer används operatorn delete[].

Note
Observera

Underlåtenhet att ta bort dynamiskt allokerat minne kan leda till minnesläckor, där programmet behåller minne som inte längre används.

Uppgift

Svep för att börja koda

Föreställ dig att du arbetar som lärare och behöver beräkna medelbetyget för en grupp elever.

Du kommer även att arbeta med pekare och funktioner som hanterar dynamiskt allokerade arrayer.

  1. Skapa en dynamiskt allokerad array grades för att lagra elevernas betyg.
  2. Använd funktionen fillRandomGrades för att fylla arrayen med slumpmässiga betyg mellan 60 och 100.
  3. Komplettera funktionen calculateAverage så att den:
    • Initierar variabeln sum till 0.
    • Itererar genom arrayen med en for-loop.
    • Lägger till varje betyg till sum.
    • Returnerar medelbetyget genom att dividera den totala sum med antalet elever.
  4. Kom ihåg att frigöra det allokerade minnet med delete[] i slutet av programmet för att undvika minnesläckor.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt