Provided by: manpages-nl_20051127-4_all
 

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 min‐
        imum  van de oude en nieuwe maten; nieuw gereserveerd geheugen zal niet
        worden geïnitialiseerd.  Als wzr NULL is, is de aanroep gelijk aan mal     
        loc(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().
        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.
        ANSI-C
        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 gerela‐
        teerd  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  omgevingsvari‐
        abelen  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 het‐
        zelfde 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 stillet‐
        jes 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  bruik‐
        baar 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 handlei‐
        ding.  Email naar <manpages-nl@nl.linux.org>.
 
        $Id: malloc.3,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $