
NAME
	  malloc, free,	realloc, calloc	- main memory allocator
SYNTAX
	  char *malloc (size)
	  unsigned size;
	  void 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 suitably aligned for any use.
	  The argument to free is a pointer to a block previously
	  allocated by malloc; after free is performed this space is
	  made available for further allocation, but its contents are
	  left undisturbed.
	  Undefined results will occur 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.  If no	free block of size bytes is
	  available in the storage arena, then realloc will ask	malloc
	  to enlarge the arena by size bytes and will then move	the
	  data to the new space.
	  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 exploit 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
	  storage of any type of object.
SEE ALSO
	  brk(2), malloc(3X).
DIAGNOSTICS
	  Malloc, realloc and calloc return a NULL pointer if there is
	  no available memory or if the	arena has been detectably
	  corrupted by storing outside the bounds of a block.  When
	  this happens the block pointed to by ptr may be destroyed.
     NOTE
	  Search time increases	when many objects have been allocated;
	  that is, if a	program	allocates but never frees, then	each
	  successive allocation	takes longer.  For an alternate, more
	  flexible implementation, see malloc(3X).
