Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Dynamische Allokation des Arrays | Dynamische Speicherzuweisung
C++-Zeiger und Referenzen
Abschnitt 4. Kapitel 3
single

single

bookDynamische Allokation des Arrays

Swipe um das Menü anzuzeigen

Bevor wir untersuchen, warum die dynamische Speicherzuweisung notwendig ist, fassen wir kurz die Eigenschaften von statischen und dynamischen Arrays zusammen:

Statisches Array

  • Feste Größe: Nach der Deklaration ist die Größe eines statischen Arrays festgelegt und kann zur Laufzeit nicht geändert werden;
  • Speicherzuweisung zur Compile-Zeit: Der für ein statisches Array benötigte Speicher wird zur Compile-Zeit zugewiesen.

Dynamische Arrays

  • Größenveränderbar: Dynamische Arrays ermöglichen eine Größenanpassung zur Laufzeit und bieten so Flexibilität, um sich an wechselnde Programm­anforderungen anzupassen;
  • Speicherzuweisung zur Laufzeit: Der Speicher für dynamische Arrays wird während der Programmausführung zugewiesen.

Die Einschränkungen eines statischen Ansatzes

Betrachten Sie ein Programm, das den Benutzer auffordert, Leistungswerte für jeden Tag des aktuellen Monats einzugeben.

Dies lässt sich leider nicht mit einem statischen Array realisieren:

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
Hinweis

Dies führt zu einem Kompilierungsfehler, da day_passed keine konstante Ausdruck ist; er hängt vom Laufzeitwert des aktuellen Tages des Monats ab.

Anstelle eines statischen Arrays muss ein dynamisch allokiertes Array verwendet werden.

Aufgabe

Wischen, um mit dem Codieren zu beginnen

Stellen Sie sich vor, Sie arbeiten als Meteorologe und müssen Temperaturmessungen im Tagesverlauf analysieren.

Sie arbeiten mit Zeigern und Funktionen, die dynamisch zugewiesene Datenarrays verarbeiten.

  1. Initialisieren Sie die Variablen sum mit 0, minTemp mit dem ersten Element des Arrays und maxTemp mit dem ersten Element des Arrays.
  2. Durchlaufen Sie das Array temps mit einer for-Schleife und dem Index i von 0 bis hours.
  3. Addieren Sie für jedes Element temps[i] dessen Wert zu sum.
  4. Wenn temps[i] kleiner als minTemp ist, weisen Sie temps[i] minTemp zu.
  5. Wenn temps[i] größer als maxTemp ist, weisen Sie temps[i] maxTemp zu.
  6. Berechnen Sie die durchschnittliche Temperatur, indem Sie sum durch hours teilen, und speichern Sie das Ergebnis in der Variablen average.
  7. Geben Sie die Werte von minTemp, maxTemp und average auf der Konsole aus.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt