Pointer und dynamische Arrays
Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy — Lektion 56 von 56.
Aufgabe
EinfachErstellen Sie ein Programm, das die dynamische Speicherverwaltung demonstriert, indem es ein flexibles System zur Speicherung und Verarbeitung von Zahlen aufbaut. Diese Herausforderung wird Ihr Verständnis von dynamischen Arrays, Speicherallokation, Array-Manipulation und ordnungsgemäßer Speicherbereinigung testen.
Die folgenden Eingaben werden bereitgestellt:
- Eine Ganzzahl
size, die die Anzahl der zu speichernden Ganzzahlen darstellt - Anschließend
sizeGanzzahlen, die die im dynamischen Array zu speichernden Zahlen darstellen
Ihr Programm sollte:
- Die Größe von der Eingabe lesen
- Ein Array von Ganzzahlen dynamisch mit
new[]in der angegebenen Größe allokieren - Die Ganzzahlen von der Eingabe lesen und im dynamisch allokierten Array speichern
- Die Summe aller Zahlen im Array berechnen
- Den Maximalwert im Array finden
- Die Ergebnisse im angegebenen Format ausgeben
- Den Speicher ordnungsgemäß mit
delete[]freigeben
Verwenden Sie das folgende exakte Ausgabeformat:
Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]Denken Sie daran, dass die dynamische Speicherallokation es Ihnen ermöglicht, Arrays zu erstellen, deren Größe zur Laufzeit basierend auf Benutzereingaben bestimmt wird. Verwenden Sie new int[size], um das Array zu allokieren, und greifen Sie auf die Elemente mit der Array-Notation array[index] zu. Nachdem Sie das Array fertig verwendet haben, müssen Sie delete[] array aufrufen, um den allokierten Speicher freizugeben und Speicherlecks zu vermeiden. Das Array existiert auf dem Heap und bleibt bestehen, bis Sie es explizit freigeben.
Probier es selbst
#include <iostream>
using namespace std;
int main() {
// Lies die Größe des Arrays ein
int size;
cin >> size;
// TODO: Schreibe deinen Code hier
// 1. Allokiere dynamisch ein Array mit new[]
// 2. Lies die Ganzzahlen ein und speichere sie im Array
// 3. Berechne die Summe aller Zahlen
// 4. Finde den Maximalwert
// 5. Vergiss nicht, den Speicher mit delete[] freizugeben
// Gib die Ergebnisse aus (durch tatsächliche Variablen ersetzen)
cout << "Array size: " << size << endl;
cout << "Sum: " << /* Summenvariable */ << endl;
cout << "Maximum: " << /* Maximalvariable */ << endl;
return 0;
}Alle Lektionen in Logik & Ablauf
1Pointer und Speicher
Was ist ein Pointer?AdressoperatorDereferenzierungsoperatorNull-PointerPointer und ArraysDynamischer Speicher mit 'new'Speicher freigeben mit 'delete'Zusammenfassung – Pointer-Übung2Vektoren (Dynamische Arrays)
Einführung in std::vectorEinen Vector erstellenElemente hinzufügenAuf Elemente zugreifenVector-GrößeIterieren mit einer For-SchleifeRange-based For-SchleifeElemente entfernenZusammenfassung – Vector-Operationen3Projekt: Aufgabenlisten-Tool
ProjektübersichtEine Aufgabe hinzufügen