Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

realloc - Speicherbereich verändern

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

void *realloc(void *ptr, size_t size);

Beschreibung

realloc() verändert die Größe des Speicherbereiches, auf den ptr zeigt, in size Bytes.

realloc() 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.

ptr ist ein Zeiger auf den Anfang des zu verändernden Speicherplatzes. ptr muss zuvor von malloc() oder calloc() zurückgeliefert worden sein.

size ist ein ganzzahliger Wert, der die neue Größe in Byte angibt.

Returnwert

Zeiger auf den Anfang des geänderten Speicherbereiches



bei Erfolg.

Returnwert

0

x

 

Nullzeiger

falls realloc() den Speicherplatz nicht verändern konnte, z.B. weil der noch vorhandene Speicherplatz nicht ausreicht oder ein Fehler auftrat. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

realloc() schlägt fehl, wenn gilt:


ENOMEM

Es ist nicht genügend Speicherplatz verfügbar.

Hinweise

Wenn realloc() die Größe eines Speicherbereiches ändert, kann u.U. der zugewiesene Block verschoben sein. In solchen Fällen ist der Inhalt des als Argument übergebenen Zeigers nicht identisch mit dem Returnwert. Der Inhalt des Blocks bleibt bis zum Minimum der alten (beim Vergrößern) bzw. neuen Größe (beim Verkleinern) erhalten.

Liefert realloc() den Nullzeiger, kann evtl. der Block, auf den ptr zeigt, zerstört worden sein!

Ist ptr ein Nullzeiger, funktioniert realloc() wie ein malloc-Aufruf für die angegebene Größe.

Siehe auch

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