Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

malloc - Speicherbereich zuweisen

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

void *malloc(size_t size);

Beschreibung

malloc() beschafft zur Ausführungszeit zusammenhängenden Speicherplatz in der Größe von size Byte. Wenn size = 0 den Wert 0 hat, gibt malloc() einen Nullzeiger zurück.

malloc() ist Teil des 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.

Returnwert

Zeiger auf den neuen Speicherbereich



wenn size nicht den Wert 0 hatte und malloc() neuen Speicherplatz zuweisen konnte. Dieser Zeiger kann für beliebige Datentypen verwendet werden.

 

Nullzeiger

wenn malloc() den Speicherplatz nicht beschaffen konnte, z.B. weil der noch vorhandene Speicherplatz nicht ausreicht oder ein Fehler auftrat. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

malloc() schlägt fehl, wenn gilt:


ENOMEM

Es ist nicht genügend Speicherplatz verfügbar.

Hinweise

Die tatsächliche Länge des Datenbereichs ist die angeforderte Länge size + 8 Byte für interne Verwaltungsdaten. Diese Summe wird ggf. auf die nächste Zweierpotenz aufgerundet.

Um sicherzugehen, dass Sie ausreichend Platz für eine Variable anfordern, sollten Sie 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.

malloc() ist ab dieser Version unterbrechungssicher, d.h. die Funktion kann nun auch in Signalbehandlungs- und Contingency-Routinen verwendet werden.

Siehe auch

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