Dynamische Zuweisung des Array
Bevor wir untersuchen, warum die dynamische Speicherzuweisung notwendig ist, fassen wir kurz die Merkmale statischer und dynamischer Arrays zusammen:
- Feste Größe: Einmal deklariert, ist die Größe eines statischen Arrays fest und kann zur Laufzeit nicht verändert werden;
- Speicherzuweisung zur Kompilierzeit: Der für ein statisches Array benötigte Speicher wird zur Kompilierzeit zugewiesen.
- Größenanpassbar: Dynamische Arrays ermöglichen die Größenanpassung zur Laufzeit und bieten die Flexibilität, sich an sich ändernde 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 das Programm, das den Benutzer auffordert, Leistungswerte für jeden Tag des bisherigen Monats einzugeben.
Leider können wir dies nicht mit einem statischen Array erreichen:
main.cpp
12345678910#include <iostream> #include <ctime> int main() { std::time_t currentTime = std::time(nullptr); int day_passed = std::localtime(¤tTime)->tm_mday; int arr[day_passed]; std::cout << day_passed << std::endl; }
Hinweis
Dies wird einen Kompilierungsfehler error erzeugen, da day_passed is not a constant expression vom Laufzeitwert des aktuellen Tages des Monats abhängt.
Also statt eines statischen Arrays müssen wir ein dynamisch alloziertes Array verwenden.
Swipe to start coding
- Erstelle ein dynamisches Array mit einer Größe, die der Anzahl der vergangenen Tage entspricht.
- Gib den zugewiesenen Speicher frei.
Lösung
solution.cpp
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5.88
Dynamische Zuweisung des Array
Swipe um das Menü anzuzeigen
Bevor wir untersuchen, warum die dynamische Speicherzuweisung notwendig ist, fassen wir kurz die Merkmale statischer und dynamischer Arrays zusammen:
- Feste Größe: Einmal deklariert, ist die Größe eines statischen Arrays fest und kann zur Laufzeit nicht verändert werden;
- Speicherzuweisung zur Kompilierzeit: Der für ein statisches Array benötigte Speicher wird zur Kompilierzeit zugewiesen.
- Größenanpassbar: Dynamische Arrays ermöglichen die Größenanpassung zur Laufzeit und bieten die Flexibilität, sich an sich ändernde 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 das Programm, das den Benutzer auffordert, Leistungswerte für jeden Tag des bisherigen Monats einzugeben.
Leider können wir dies nicht mit einem statischen Array erreichen:
main.cpp
12345678910#include <iostream> #include <ctime> int main() { std::time_t currentTime = std::time(nullptr); int day_passed = std::localtime(¤tTime)->tm_mday; int arr[day_passed]; std::cout << day_passed << std::endl; }
Hinweis
Dies wird einen Kompilierungsfehler error erzeugen, da day_passed is not a constant expression vom Laufzeitwert des aktuellen Tages des Monats abhängt.
Also statt eines statischen Arrays müssen wir ein dynamisch alloziertes Array verwenden.
Swipe to start coding
- Erstelle ein dynamisches Array mit einer Größe, die der Anzahl der vergangenen Tage entspricht.
- Gib den zugewiesenen Speicher frei.
Lösung
solution.cpp
Danke für Ihr Feedback!
Awesome!
Completion rate improved to 5.88single