realloc

MALLOC(3)                Linux Programmeurs Handleiding                MALLOC(3)



NAAM
       calloc, malloc, free, realloc - Reserveren en vrijmaken van dynamisch
       geheugen

BESCHRIJVING
       #include <stdlib.h>

       void *calloc(size_t n, size_t grootte);
       void *malloc(size_t grootte);
       void free(void *wzr);
       void *realloc(void *wzr, size_t grootte);

BESCHRIJVING
       calloc() Reserveert geheugen voor een tabel van n elementen van grootte
       bytes elk, en geeft een wijzer naar het toegewezen geheugen terug.  Het
       geheugen wordt ge`nul'd.

       malloc() Reserveert grootte bytes geheugen en geeft een wijzer naar het
       gereserveerde geheugen terug.  Het geheugen wordt niet schoon gemaakt.

       free() Maakt de geheugen-ruimte waar wzr naar wijst vrij, geheugen dat
       gereserveerd moet zijn door een eerdere aanroep naar malloc(), calloc()
       of realloc().  Anders, of als free(wzr) al eerder werd aangeroepen,
       ontstaat onbepaald gedrag.  Als wzr NULL is wordt niets gedaan.

       realloc() Verandert de grootte van het geheugen-blok waar wzr naar wijst
       in grootte bytes.  De inhoud zal onveranderd blijven tot het minimum van
       de oude en nieuwe maten; nieuw gereserveerd geheugen zal niet worden
       geïnitialiseerd.  Als wzr NULL is, is de aanroep gelijk aan
       malloc(grootte); als grootte gelijk aan nul is, is de aanroep gelijk aan
       free(wzr).  Tenzij wzr NULL is, moet het teruggegeven zijn door een
       eerdere aanroep naar malloc(), calloc() of realloc().

EIND WAARDE
       Voor calloc() en malloc(), is de teruggegeven waarde een wijzer naar het
       gereserveerde geheugen, dat geschikt is opgelijnd voor het soort
       variabele, of NULL als de aanvraag mislukt.

       free() Geeft geen waarde terug.

       realloc() Geeft een wijzer naar het nieuw gereserveerde geheugen, wat
       geschikt is opgelijnd voor de soort variabele. Het kan verschillen van
       wzr.  Het is NULL als de aanvraag mislukt, of als de grootte gelijk is
       aan 0. Als realloc() niet slaagt blijft het originele blok onveranderd -
       het wordt niet vrijgegeven of verplaatst.

VOLDOET AAN
       ANSI-C

ZIE OOK
       brk(2)

OPMERKINGEN
       De Unix98 standaard vereist van malloc(), calloc(), en realloc() dat ze
       errno naar ENOMEM zetten bij mislukken. Glibc neemt aan dat dit wordt
       gedaan (en de glibc versie van deze routines doen dit); als u een priv├ę
       malloc implementatie gebruikt dat errno niet zet, dan zullen bepaalde
       bibliotheek routines falen zonder een reden te vermelden met errno.

       `Crash-es' in malloc(), free() of realloc() zijn vrijwel altijd
       gerelateerd aan stapel {heap} corruptie, zoals overschrijden van een
       toegewezen homp of vrijmaken van dezelfde wijzer twee keer.

       Recente versies van Linux libc (later dan 5.4.23) en GNU libc (2.x)
       bevatten een malloc implementatie die instelbaar is via
       omgevingsvariabelen Wanneer MALLOC_CHECK_ gezet is, wordt een speciale
       (minder snelle) implementatie gebruikt die ontworpen is om tolerant te
       zijn voor eenvoudige fouten, zoals dubbele aanroepen van free() met
       hetzelfde argument, of overschrijden van een buffer met een enkele byte
       (off-by-one bugs). Niet tegen all dergelijke fouten kan echter worden
       beschermd, en geheugen lekken kunnen resulteren.  Als MALLOC_CHECK_ gezet
       is naar 0, elke opgemerkte stapel {heap} corruptie wordt stilletjes
       genegeerd; als gezet naar 1, wordt een diagnose gegeven op stderr; als
       gezet naar 2, wordt onmiddellijk abort() aangeroepen om het krakkemikkige
       programma uit zijn lijden te verlossen.  Dit kan bruikbaar zijn omdat
       anders later een crash kan optreden, en de ware oorzaak van het probleem
       dan moeilijk te achterhalen is.


VERTALING
       Dit is een handleiding uit manpages-nl 1.34.  Alles wat tussen `{'..`}'
       staat is aanvullende vertaling, en hoort niet bij de originele
       handleiding.  Email naar <manpages-nl@nl.linux.org>.

       $Id: malloc.3,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $



GNU                               April 4, 1993                        MALLOC(3)