# 2.11BSD#431 - /usr/man/cat3/malloc.0

    MALLOC(3)	    UNIX Programmer's Manual		MALLOC(3)

    NAME
         malloc, free, realloc, calloc, alloca - memory allocator

    SYNOPSIS
         char *malloc(size)
         unsigned size;

         free(ptr)
         char *ptr;

         char *realloc(ptr, size)
         char *ptr;
         unsigned size;

         char *calloc(nelem, elsize)
         unsigned nelem, elsize;

         char *alloca(size)
         int size;

    DESCRIPTION
         Malloc and free provide a general-purpose memory allocation
         package.  Malloc returns a pointer to a block of at least
         size bytes beginning on a word boundary.

         The argument to free is a pointer to a block previously
         allocated by malloc; this space is made available for
         further allocation, but its contents are left undisturbed.

         Needless to say, grave disorder will result if the space
         assigned by malloc is overrun or if some random number is
         handed to free.

         Malloc maintains multiple lists of free blocks according to
         size, allocating space from the appropriate list.	It calls
         sbrk (see brk(2)) to get more memory from the system when
         there is no suitable space already free.

         Realloc changes the size of the block pointed to by ptr to
         size bytes and returns a pointer to the (possibly moved)
         block.  The contents will be unchanged up to the lesser of
         the new and old sizes.

         In order to be compatible with older versions, realloc also
         works if ptr points to a block freed since the last call of
         malloc, realloc or calloc; sequences of free, malloc and
         realloc were previously used to attempt storage compaction.
         This procedure is no longer recommended.

         Calloc allocates space for an array of nelem elements of
         size elsize. The space is initialized to zeros.

    Printed 11/26/99	  May 14, 1986				1

    MALLOC(3)	    UNIX Programmer's Manual		MALLOC(3)

         Alloca allocates size bytes of space in the stack frame of
         the caller.  This temporary space is automatically freed on
         return.

         Each of the allocation routines returns a pointer to space
         suitably aligned (after possible pointer coercion) for
         storage of any type of object.  If the space is of pagesize
         or larger, the memory returned will be page-aligned.

    SEE ALSO
         brk(2), pagesize(2)

    DIAGNOSTICS
         Malloc, realloc and calloc return a null pointer (0) if
         there is no available memory or if the arena has been
         detectably corrupted by storing outside the bounds of a
         block.  Malloc may be recompiled to check the arena very
         stringently on every transaction; those sites with a source
         code license may check the source code to see how this can
         be done.

    BUGS
         When realloc returns 0, the block pointed to by ptr may be
         destroyed.

         The current implementation of malloc does not always fail
         gracefully when system memory limits are approached.  It may
         fail to allocate memory when larger free blocks could be
         broken up, or when limits are exceeded because the size is
         rounded up.  It is optimized for sizes that are powers of
         two.

         Alloca is machine dependent; its use is discouraged.

    Printed 11/26/99	  May 14, 1986				2

Generated: 2016-12-26 | Generated by man2html V0.25 page hit count: 347 |