Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

calloc - Speicherplatz reservieren

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

void *calloc(size_t anz, size_t elgroesse);

calloc beschafft zur Ausführungszeit zusammenhängenden Speicherplatz für einen Vektor mit anz Elementen, wobei jedes Element elgroesse Bytes beansprucht. calloc initialisiert jedes Element des neuen Vektors mit binären Nullen.

calloc ist Teil eines C-spezifischen Speicherverwaltungspaketes, das angeforderte und wieder freigegebene Speicherbereiche intern verwaltet. Neue Anforderungen werden zuerst aus bereits verwalteten Bereichen zu erfüllen versucht, dann erst vom Betriebssystem (vgl. Funktion garbcoll).

Returnwert

Zeiger auf den neuen Speicherplatz

 


falls genügend Speicherplatz vorhanden ist.                                                                


NULL-Zeiger

falls der Speicherplatz für die Anforderung nicht ausreicht.

Hinweise

Der neue Datenbereich beginnt auf Doppelwortgrenze.

Um sicherzugehen, dass Sie die richtige Größe für ein Vektorelement anfordern, sollten Sie für die Berechnung von elgroesse den Operator sizeof verwenden.

Wird die Länge des zur Verfügung gestellten Speicherbereiches beim Schreiben überschritten, führt dies zu schwerwiegenden Fehlern im Arbeitsspeicher.

Falls anz oder elgroesse den Wert 0 besitzt, liefert calloc eine eindeutige Adresse, die auch an free übergeben werden kann.

Beispiel

Folgender Programmausschnitt fordert Speicherplatz für 20 Vektorelemente vom Typ long integer an.

#include <stdlib.h>
long *long_array;
    .
    .
long_array = (long *)calloc(20, sizeof(long));

Siehe auch

malloc, realloc, free, garbcoll