Kapitel 12. Dynamische Speicherverwaltung

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Wenn du ein Programm schreibst, weißt du oft nicht, wie viele Daten es verarbeiten muss, oder du kannst voraussehen, dass die Menge der zu verarbeitenden Daten stark schwanken wird. In diesen Fällen erfordert eine effiziente Ressourcennutzung, dass du nur so viel Speicher zuweist, wie du ihn zur Laufzeit tatsächlich brauchst, und ihn so schnell wie möglich wieder freigibst. Das ist das Prinzip der dynamischen Speicherverwaltung, die auch den Vorteil hat, dass ein Programm nicht neu geschrieben werden muss, um größere Datenmengen auf einem System mit mehr verfügbarem Speicher zu verarbeiten.

Dieses Kapitel beschreibt die dynamische Speicherverwaltung in C und demonstriert die wichtigsten Funktionen am Beispiel einer allgemeinen Binärbaum-Implementierung.

Die Standardbibliothek bietet die folgenden vier Funktionen für die dynamische Speicherverwaltung:

malloc(), calloc()

Weisen Sie einen neuen Speicherblock zu.

realloc()

Ändere die Größe eines zugewiesenen Speicherblocks.

free()

Gib den zugewiesenen Speicher frei.

Alle dieser Funktionen werden in der Header-Datei stdlib.h deklariert. Die Größe eines Objekts im Speicher wird als Anzahl von Bytes angegeben. Verschiedene Header-Dateien, darunter stdlib.h, definieren den Typ size_t speziell für diese Art von Informationen. Der Operator sizeof zum Beispiel ...

Get C in a Nutshell, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.