mops.c - basic memory operation
Version Tag $Id: mops.c,v 1.19 2006/02/06 19:55:46 db60 Exp $
void *alloc(const size_t bytes, const char *const msg);
alloc is a wrapper for the standard library function malloc
. It
allocates new memory, or, on failure, crashes with an error message. It
also assures a system-independent return value, NULL
, if a zero-byte
allocation is requested.
alloc will always fail without calling malloc
if the request
exceeds MAX_ALLOC
bytes, where MAX_ALLOC
is defined in lvb.h
.
This avoids straining malloc
beyond typical use. MAX_ALLOC
is a
large number that will comfortably fit in a 32-bit signed integer.
The allocated memory may be freed with the standard library function
free
.
The new memory is not initialized.
The number of bytes to allocate. If bytes
is zero, no memory is
allocated.
Pointer to the first text character in a string that describes the object being allocated. On allocation failure, alloc will crash with an error message of 'FATAL ERROR: out of memory: cannot allocate for ', followed by this string.
Returns pointer to the first byte of the newly allocated memory, which
is suitably aligned for storage of any object, or NULL
if a
zero-byte allocation was requested.