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 - Speicherbereich zuweisen

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

void *calloc(size_t nelem, size_t elsize);

Beschreibung

calloc() beschafft zur Ausführungszeit ungenutzten Speicherplatz für einen Vektor mit nelem Elementen, wobei jedes Element elsize Byte 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.

nelem ist ein ganzzahliger Wert, der die Anzahl der Vektorelemente angibt. elsize ist ein ganzzahliger Wert, der die Größe eines Vektorelementes angibt.

Wenn Speicherbereiche durch aufeinander folgende Aufrufe von calloc() zugewiesen wurden, so ist die Anordnung dieser Bereiche im Speicher undefiniert. Der Zeiger, der bei erfolgreicher Allokierung zurückgegeben wird, ist auf Doppelwortgrenze ausgerichtet, so dass er einem Zeiger auf jeden Typ von Objekt zugewiesen werden kann. Nach der Zuweisung kann auf das Objekt oder auf einen Vektor solcher Objekte in dem neu zugewiesenen Speicherbereich zugegriffen werden (bis der Bereich explizit freigegeben oder erneut zugewiesen wird).

Returnwert

Zeiger auf den neuen Speicherplatz

 


falls nelem und elsize ungleich 0 sind und genügend Speicherplatz vorhanden ist.

 

Nullzeiger

wenn der Speicherplatz für die Anforderung nicht ausreicht. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

calloc() schlägt fehl, wenn gilt:

 

ENOMEM

Es ist nicht genügend Speicherplatz verfügbar.

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 elsize den Operator sizeof verwenden.
Wird die Länge des zur Verfügung gestellten Speicherbereiches beim Schreiben überschritten, führt dies zu schwer wiegenden Fehlern im Arbeitsspeicher.

calloc() ist unterbrechungssicher, d.h. die Funktion kann in Signalbehandlungs- und Contingency-Routinen verwendet werden.

Siehe auch

free(), malloc(), realloc(), stdlib.h.