Lektion 7

Heap und Stack

Heap

Der Heap ist ein Speicherbereich, der zur Laufzeit eines Programms dynamisch allokiert wird. Das bedeutet, dass der Heap zur Laufzeit eines Programms wächst und schrumpft.

Stack

Der Stack ist ein Speicherbereich, der zur Laufzeit eines Programms dynamisch allokiert wird. Das bedeutet, dass der Stack zur Laufzeit eines Programms wächst und schrumpft.

reserviert Speicher im Heap C Arrays Zeiger

#include <stdlib.h>
Datentyp Variablenname=(Datentyp)malloc(Anzahl*sizeof(Datentyp));// reserviert Speicher im Heap
Variablenname[0]=Wert;// weist den Wert zu Anfang des reservierten Speichers zu.
free(Variablenname);// gibt den Speicher wieder frei
Variablenname=NULL;// weist den Zeiger auf NULL

Die Funktion malloc() reserviert Speicher im Heap. Die Funktion malloc() gibt einen Zeiger auf den reservierten Speicher zurück. Der reservierte Speicher ist nicht initialisiert. Die Funktion malloc() gibt NULL zurück, wenn kein Speicher mehr verfügbar ist.

reserviert Speicher im Stack C Arrays Zeiger

Datentyp Variablenname[Anzahl];// reserviert Speicher im Stack
Variablenname[0]=Wert;// weist den Wert zu Anfang des reservierten Speichers zu.

Calloc und Realloc

#include <stdlib.h> 
Datentyp Variablenname=(Datentyp)calloc(Anzahl,sizeof(Datentyp));// reserviert Speicher im Heap nullt den Speicher
Variablenname[0]=Wert;// weist den Wert zu Anfang des reservierten Speichers zu.
Datentyp Variablenname=(Datentyp)realloc(Variablenname,Anzahl*sizeof(Datentyp));// reserviert Speicher im Heap
free(Variablenname);// gibt den Speicher wieder frei
Variablenname=NULL;// weist den Zeiger auf NULL

Castings

Datentyp Variablenname=(Datentyp)Variablenname;// Castet die Variable in den Datentyp