0Pricing
C Academy · Lektion

Dynamische Speicherverwaltung

Erkunden Sie Funktionen wie malloc, calloc, realloc und free zur dynamischen Speicherverwaltung.

Dynamische Speicherverwaltung ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 3 Lektionen.

Dynamische Speicherzuweisung

Dynamische Speicherzuweisung

In C können Sie mit der dynamischen Speicherzuweisung Speicher zur Laufzeit statt zur Kompilierzeit reservieren.

In dieser Lektion lernen Sie:

  • Wie Sie mithilfe von malloc, calloc und realloc Speicher reservieren.
  • Wie Sie reservierten Speicher mit free freigeben.
  • Wie Sie Speicherlecks vermeiden.
Dynamische Speicherverwaltung — Illustration 1

Was ist dynamische Speicherzuweisung?

Was ist dynamische Speicherzuweisung?

Normalerweise wird Speicher für Variablen zur Kompilierzeit reserviert.

Bei der dynamischen Speicherzuweisung wird Speicher während der Programmausführung mithilfe spezieller Funktionen reserviert.

Das ist nützlich, wenn Arrays oder Strukturen verwaltet werden sollen, deren Größe zur Kompilierzeit unbekannt ist.

Speicher mit malloc() reservieren

Speicher mit malloc() reservieren

Die Funktion malloc reserviert Speicher, initialisiert ihn jedoch nicht.

Syntax:

ptr = (int*) malloc(size * sizeof(int));

Sie gibt einen Zeiger auf den reservierten Speicher zurück oder NULL, wenn die Reservierung fehlschlägt.

Beispiel: malloc() verwenden

Beispiel: malloc() verwenden

Dieses Programm zeigt, wie Sie mithilfe von malloc Speicher reservieren.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) malloc(5 * sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        ptr[i] = i * 10;
        printf("%d ", ptr[i]);
    }
    free(ptr);
    return 0;
}

Speicher mit calloc() reservieren

Speicher mit calloc() reservieren

Die Funktion calloc reserviert Speicher und initialisiert ihn mit Nullen.

Syntax:

ptr = (int*) calloc(num_elements, sizeof(int));

Sie gibt einen Zeiger auf den reservierten Speicher zurück oder NULL, wenn die Reservierung fehlschlägt.

Beispiel: calloc() verwenden

Beispiel: calloc() verwenden

Dieses Programm zeigt, wie Sie mithilfe von calloc Speicher reservieren.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) calloc(5, sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        printf("%d ", ptr[i]); // All elements initialized to 0
    }
    free(ptr);
    return 0;
}

Speicher mit realloc() neu reservieren

Speicher mit realloc() neu reservieren

Die Funktion realloc ändert die Größe eines zuvor reservierten Speicherbereichs.

Syntax:

ptr = realloc(ptr, new_size * sizeof(int));

Sie gibt einen Zeiger auf den neuen Speicherblock zurück.

Speicher mit free() freigeben

Speicher mit free() freigeben

Reservierter Speicher sollte mit free() freigegeben werden, um Speicherlecks zu vermeiden.

Syntax:

free(ptr);

Nach der Freigabe darf nicht mehr auf den Zeiger zugegriffen werden.

Zusammenfassung

Zusammenfassung

In dieser Lektion haben Sie Folgendes gelernt:

  • Wie Sie mithilfe von malloc und calloc Speicher reservieren.
  • Wie Sie mithilfe von realloc Speicher neu reservieren.
  • Wie Sie Speicher mit free freigeben, um Speicherlecks zu vermeiden.

Als Nächstes sehen Sie sich Zeigerarrays und Funktionszeiger in C an!

Dynamische Speicherverwaltung — Illustration 10

Häufig gestellte Fragen

Ist die Lektion „Dynamische Speicherverwaltung“ kostenlos?

Ja — der vollständige Text von „Dynamische Speicherverwaltung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Dynamische Speicherverwaltung“?

Erkunden Sie Funktionen wie malloc, calloc, realloc und free zur dynamischen Speicherverwaltung. Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C Academy zu starten?

Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.

Wie lange dauert die Lektion „Dynamische Speicherverwaltung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?

Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Einführung in Pointer
  2. Dynamische Speicherverwaltung
  3. Pointer-Arrays und Funktions-Pointer
← Zurück zu C Academy