Klicken Sie Zeilen an, die mit + markiert sind. Dort ist Hilfeinformation hinterlegt.
Die Zeile wird gebraucht, damit die Bibliotheksfunktionen
calloc und free unten bekannt sind.
Es gibt in C keinen Unterschied zwischen einem Zeiger auf einen einzelnen
int-Wert und einem Zeiger auf ein Array von int-Werten.
Die Funktion calloc (alternativ auch malloc)
aus der C-Bibliothek ist quasi die Entsprechung zum Operator new in Java.
calloc reserviert hier n * sizeof (int) Byte
Speicher auf dem Heap und initialisiert diesen Speicher mit Nullen.
Rückgabewert ist die Anfangsadresse des Speichers als Wert vom
Typ void*.
Es ist in C guter Stil und in C++ Pflicht, den Typ void*
auf den benötigten Zeigertyp anzupassen, hier int*.
calloc liefert im Fehlerfall die ungültige Adresse
NULL zurück. Bei jeder Speicherreservierung muss
die gelieferte Adresse auf NULL gestestet werden.
Eine Zeigervariable kann in C genau so wie eine Arrayvariable verwendet werden.
Es gibt in C keinen Garbage-Collector für den Heap.
Zu jedem Aufruf von calloc und malloc
muss es deshalb einen free-Aufruf geben.
Die Bibliotheksfunktion free macht den nicht mehr benötigten
Heap-Speicher wieder für spätere calloc- oder
malloc-Aufrufe verfügbar.
Vergessene Speicherfreigaben sind ein gefürchteter Fehler
in C-Programmen, die lange am Stück laufen müssen.
Das Werkzeug valgrind entdeckt solche Fehler
(Speicherlecks, memory leaks).