MALLOC(3C) COMMAND REFERENCE MALLOC(3C)
NAME
malloc, free, realloc, calloc - main 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;
DESCRIPTION
Malloc and free provide a simple 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, serious disorder will result if the space
assigned by malloc is overrun or if some random number is
handed to free.
Malloc allocates the first big enough contiguous reach of
free space found in a circular search from the last block
allocated or freed, coalescing adjacent free blocks as it
searches. 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.
Realloc also works if ptr points to a block freed since the
last call of malloc,realloc, or calloc; thus sequences of
free,malloc, and realloc can force the search strategy of
malloc to do storage compaction.
Calloc allocates space for an array of nelem elements of
size elsize. The space is initialized to zeros.
Each of the allocation routines returns a pointer to space
suitably aligned (after possible pointer coercion) for
Printed 3/13/89 1
MALLOC(3C) COMMAND REFERENCE MALLOC(3C)
storage of any type of object.
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.
CAVEATS
When realloc returns 0, the block pointed to by ptr may be
destroyed.
SEE ALSO
brk(2).
Printed 3/13/89 2
%%index%%
na:312,105;
sy:417,1676;
de:2093,2789;5266,37;
di:5303,506;
ca:5809,235;
se:6044,138;
%%index%%000000000119