Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Dynamische Toewijzing van de Array | Dynamische Geheugentoewijzing
C++ Pointers en Referenties
Sectie 4. Hoofdstuk 3
single

single

bookDynamische Toewijzing van de Array

Veeg om het menu te tonen

Voordat we bespreken waarom dynamische toewijzing noodzakelijk is, herhalen we kort de kenmerken van statische en dynamische arrays:

Statische array

  • Vaste grootte: eenmaal gedeclareerd, is de grootte van een statische array vast en kan deze tijdens de uitvoering niet worden gewijzigd;
  • Geheugentoewijzing tijdens compilatie: het geheugen dat nodig is voor een statische array wordt tijdens de compilatie toegewezen.

Dynamische arrays

  • Aanpasbaar formaat: dynamische arrays kunnen tijdens de uitvoering van het programma van grootte veranderen, waardoor flexibiliteit ontstaat om aan veranderende programmavereisten te voldoen;
  • Geheugentoewijzing tijdens uitvoering: geheugen voor dynamische arrays wordt toegewezen tijdens de uitvoering van het programma.

De beperkingen van een statische benadering

Beschouw het programma dat de gebruiker vraagt om prestatiescores in te voeren voor elke dag die is verstreken in de huidige maand.

Helaas kunnen we dit niet bereiken met een statische array:

main.cpp

main.cpp

copy
12345678910
#include <iostream> #include <ctime> int main() { std::time_t currentTime = std::time(nullptr); int day_passed = std::localtime(&currentTime)->tm_mday; int arr[day_passed]; std::cout << day_passed << std::endl; }
Note
Opmerking

Dit zal een compilatiefout genereren omdat day_passed geen constante expressie is; het hangt af van de runtime-waarde van de huidige dag van de maand.

In plaats van een statische array moet een dynamisch gealloceerde array worden gebruikt.

Taak

Swipe to start coding

Stel je voor dat je werkt als meteoroloog die temperatuurmetingen gedurende de dag moet analyseren.

Je werkt met pointers en functies die dynamisch gealloceerde arrays van gegevens manipuleren.

  1. Initialiseer de variabelen sum op 0, minTemp op het eerste element van de array en maxTemp op het eerste element van de array.
  2. Itereer door de array temps met een for-lus met een index i van 0 tot hours.
  3. Tel bij elk element temps[i] de waarde op bij sum.
  4. Als temps[i] kleiner is dan minTemp, wijs dan temps[i] toe aan minTemp.
  5. Als temps[i] groter is dan maxTemp, wijs dan temps[i] toe aan maxTemp.
  6. Bereken de gemiddelde temperatuur door sum te delen door hours en sla deze op in een variabele average.
  7. Print de waarden van minTemp, maxTemp en average naar de console.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt