glenda.party
term% ls -F
term% cat index.txt
ALLOC(9.3)                                                          ALLOC(9.3)

NAME
       alloc, free, balloc, bfree, gcalloc, gcfree - allocate memory

SYNOPSIS
       #include <jerq.h>

       char *alloc(nbytes) unsigned nbytes;

       void free(s) char *s;

       Bitmap *balloc(r) Rectangle r;

       void bfree(b) Bitmap *b;

       char *gcalloc(nbytes, where) unsigned long nbytes; char **where;

       void gcfree(s) char *s;

DESCRIPTION
       Alloc  corresponds  to  the  standard  C function malloc.  It returns a
       pointer to a block of nbytes contiguous bytes of storage, or 0  if  un‐
       available.   The  storage is aligned on 4-byte boundaries.  Unlike mal‐
       loc, alloc clears the storage to zeros.  Free frees  storage  allocated
       by alloc.

       Balloc  returns  a pointer to a Bitmap large enough to contain the Rec‐
       tangle r, or 0 for failure.  The coordinate system inside the Bitmap is
       set by r: the origin and corner of the Bitmap are those  of  r.   Bfree
       frees the storage associated with a Bitmap allocated by balloc.

       Gcalloc  provides  a simple garbage-compacting allocator.  It returns a
       pointer to a block of nbytes contiguous bytes of storage, or 0  if  un‐
       available.  The storage is initialized to zeros.  Where is a pointer to
       the  user's  data  where the location of the block is to be saved.  The
       return value of gcalloc is stored in *where and will be  updated  after
       each compaction.  Therefore, a program using gcalloc should never store
       the  location  of  gcallocated  memory anywhere other than the location
       handed to the allocator.  Typically, this location is  contained  in  a
       structure,  such  as  a Bitmap (balloc uses gcalloc).  Gcfree frees the
       storage block at p.  Gcalloc is not for novices.

SEE ALSO
       types(9.5)

                                                                    ALLOC(9.3)