Tcl Library Procedures TclAlloc(3TCL)
NAME
TclAlloc, TclFree, TclRealloc, TclAttemptAlloc,
TclAttemptRealloc, ckalloc, ckfree, ckrealloc, attemptckal-
loc, attemptckrealloc - allocate or free heap memory
SYNOPSIS
#include
char *
TclAlloc(size)
void
TclFree(ptr)
char *
TclRealloc(ptr, size)
char *
TclAttemptAlloc(size)
char *
TclAttemptRealloc(ptr, size)
char *
ckalloc(size)
void
ckfree(ptr)
char *
ckrealloc(ptr, size)
char *
attemptckalloc(size)
char *
attemptckrealloc(ptr, size)
ARGUMENTS
int size (in) Size in bytes of the memory block
to allocate.
char *ptr (in) Pointer to memory block to free or
realloc.
DESCRIPTION
These procedures provide a platform and compiler independent
interface for memory allocation. Programs that need to
Tcl Last change: 7.5 1
Tcl Library Procedures TclAlloc(3TCL)
transfer ownership of memory blocks between Tcl and other
modules should use these routines rather than the native
malloc() and free() routines provided by the C run-time
library.
TclAlloc returns a pointer to a block of at least size
bytes suitably aligned for any use.
TclFree makes the space referred to by ptr available for
further allocation.
TclRealloc changes the size of the block pointed to by ptr
to size bytes and returns a pointer to the new block. The
contents will be unchanged up to the lesser of the new and
old sizes. The returned location may be different from ptr.
TclAttemptAlloc and TclAttemptRealloc are identical in
function to TclAlloc and TclRealloc, except that
TclAttemptAlloc and TclAttemptRealloc will not cause the
Tcl interpreter to panic if the memory allocation fails. If
the allocation fails, these functions will return NUL.
Note that on some platforms, attempting to allocate a block
of memory will also cause these functions to return NUL.
The procedures ckalloc, ckfree, ckrealloc, attemptckalloc,
and attemptckrealloc are implemented as macros. Normally,
they are synonyms for the corresponding procedures docu-
mented on this page. When Tcl and all modules calling Tcl
are compiled with TCLMEMDEBUG defined, however, these mac-
ros are redefined to be special debugging versions of of
these procedures. To support Tcl's memory debugging within
a module, use the macros rather than direct calls to
TclAlloc, etc.
KEYWORDS
alloc, allocation, free, malloc, memory, realloc,
TCLMEMDEBUG
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
Tcl Last change: 7.5 2
Tcl Library Procedures TclAlloc(3TCL)
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWTcl
Interface Stability Uncommitted
NOTES
Source for Tcl is available on http:/opensolaris.org.
Tcl Last change: 7.5 3
|