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 .
|