NAME
TclAlloc, TclFree, TclRealloc, TclAttemptAlloc, TclAttemptRealloc,ckalloc, ckfree, ckrealloc, attemptckalloc, attemptckrealloc - allocate
or free heap memorySYNOPSIS
##iinncclluuddee <
char * TTccllAAlllloocc(size) void TTccllFFrreeee(ptr) char * TTccllRReeaalllloocc(ptr, size) char * TTccllAAtttteemmppttAAlllloocc(size) char * TTccllAAtttteemmppttRReeaalllloocc(ptr, size) char * cckkaalllloocc(size) void cckkffrreeee(ptr) char * cckkrreeaalllloocc(ptr, size) char * aatttteemmppttcckkaalllloocc(size) char * aatttteemmppttcckkrreeaalllloocc(ptr, size) AARRGGUUMMEENNTTSS 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 transfer ownership of memory blocks between Tcl and other modules should use these routines rather than the native mmaalllloocc(()) and ffrreeee(()) routines provided by the Crun-time library.
TTccllAAlllloocc returns a pointer to a block of at least size bytes suitably aligned for any use.TTccllFFrreeee makes the space referred to by ptr available for further allo-
cation. TTccllRReeaalllloocc 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. TTccllAAtttteemmppttAAlllloocc and TTccllAAtttteemmppttRReeaalllloocc are identical in function to TTccllAAlllloocc and TTccllRReeaalllloocc, except that TTccllAAtttteemmppttAAlllloocc and TTccllAAtttteemmppttRReeaalllloocc will not cause the Tcl interpreter to ppaanniicc if the memory allocation fails. If the allocation fails, these functions will return NULL. Note that on some platforms, attempting to allocate a block of memory will also cause these functions to return NULL. The procedures cckkaalllloocc, cckkffrreeee, cckkrreeaalllloocc, aatttteemmppttcckkaalllloocc, andaatttteemmppttcckkrreeaalllloocc are implemented as macros. Normally, they are syn-
onyms for the corresponding procedures documented on this page. When Tcl and all modules calling Tcl are compiled with TTCCLLMMEEMMDDEEBBUUGG defined, however, these macros 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 TTccllAAlllloocc, etc. KKEEYYWWOORRDDSS alloc, allocation, free, malloc, memory, realloc, TCLMEMDEBUG Tcl 7.5 TclAlloc(3)