Memory API (Speicherverwaltung in C)¶
📚 1️⃣ Speicherallokation in C¶
Die Speicherverwaltung in C kann entweder über den Stack oder den Heap erfolgen.
✅ Stack (Automatische Speicherverwaltung)
- Speicher für lokale Variablen wird automatisch reserviert und freigegeben.
-
Beispiel:
✅ Heap (Manuelle Speicherverwaltung mit malloc/free)
- Speicher wird explizit mit
malloc()
angefordert und mitfree()
freigegeben. -
Beispiel:
⚠️ 2️⃣ Häufige Fehler bei der Speicherverwaltung¶
❌ Vergessen, Speicher zu allokieren
int *x = malloc(sizeof(int) * 4); // Speicherblock für 4 Ganzzahlen
free(x); // Freigabe des Speichers
✅ Korrekt:
❌ Nicht genügend Speicher allokiert
✅ Korrekt:
❌ Vergessen, Speicher freizugeben (Memory Leak)
int *x = malloc(sizeof(int) * 4);
// ❌ Falls free(x) nicht aufgerufen wird, bleibt der Speicher belegt!
✅ Korrekt:
🛠️ 3️⃣ Erweiterte Speicherfunktionen¶
realloc()
– Erweitert oder verkleinert einen bereits allokierten Speicherbereich.
c
int *x = malloc(4 * sizeof(int));
x = realloc(x, 8 * sizeof(int)); // Größe verdoppeln
mmap()
– Direktes Mapping von Speicherbereichen.