NAME¶
ns_calloc, ns_free, ns_malloc, ns_realloc - Memory allocation functions
SYNOPSIS¶
#include "ns.h"
void *
ns_calloc(size_t num, size_t esize)
void
ns_free(void *ptr)
void *
ns_malloc(size_t size)
void *
ns_realloc(void *ptr, size_t size)
DESCRIPTION¶
The AOLserver memory storage allocation code was moved into Tcl core beginning
with Tcl 8.4.0. Starting with AOLserver 3.5, these memory allocation functions
are wrappers that call Tcl_Alloc and Tcl_Free. Earlier versions of AOLserver
used this fast memory storage allocator internally, or the platform's memory
allocator depending on how you configured it.
The actual amount of memory allocated or freed will be different from the
requested amount. This is because the fast memory allocation code pools memory
into chunks and manages that memory internally. In addition, the Tcl
distribution may be compiled to allocate even more memory which is used
internally for diagnostic reasons. Using ns_free to free memory created by
routines other than ns_malloc, ns_realloc and ns_calloc will almost certainly
result in segmentation faults or undefined behavior.
The lowercase and mixed-case versions are identical; the lowercase versions are
preferred.
- ns_calloc(num, esize)
- Allocates a block of memory that is num * esize large, zeros
it, and returns a pointer to the beginning of the memory block or NULL if
the operation fails.
- ns_free(ptr)
- ns_free() frees the memory space pointed to by ptr. This pointer must have
been created with a previous call to ns_malloc(), ns_calloc() or
ns_realloc(). If ptr is NULL, no operation is performed. ns_free() returns
no value.
- ns_malloc(size)
- ns_malloc() allocates size bytes and returns a pointer to the allocated
memory. The memory is not cleared. The value returned is a pointer to the
allocated memory or NULL if the request fails. The memory must be freed by
ns_free.
- ns_realloc(ptr, size)
- ns_realloc changes the size of the memory block pointed to by
ptr to size bytes. The contents will be unchanged to the
minimum of the old and new sizes. Newly allocated memory will be
uninitialized. If ptr is NULL, the call is equivalent to
ns_malloc( size); if size is equal to zero, the call
is equivalent to ns_free(ptr). Unless ptr is NULL, it
must have been returned by an earlier call to ns_malloc(),
ns_calloc() or ns_realloc().
SEE ALSO¶
Tcl_Alloc(3),
Tcl_Free(3)
KEYWORDS¶
memory, allocation