Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tcl_Alloc(3)		     Tcl Library Procedures		    Tcl_Alloc(3)

________________________________________________________________________________

NAME
     Tcl_Alloc,  Tcl_Free,  Tcl_Realloc,  Tcl_AttemptAlloc,  Tcl_AttemptRealloc,
     Tcl_GetMemoryInfo, ckalloc, ckfree, ckrealloc, attemptckalloc, attemptckre-
     alloc - allocate or free heap memory

SYNOPSIS
     #include <tcl.h>

     char *
     Tcl_Alloc(size)

     void
     Tcl_Free(ptr)

     char *
     Tcl_Realloc(ptr, size)

     char *
     Tcl_AttemptAlloc(size)

     char *
     Tcl_AttemptRealloc(ptr, size)

     void
     Tcl_GetMemoryInfo(dsPtr)

     char *
     ckalloc(size)

     void
     ckfree(ptr)

     char *
     ckrealloc(ptr, size)

     char *
     attemptckalloc(size)

     char *
     attemptckrealloc(ptr, size)

ARGUMENTS
     unsigned int size (in)   Size in bytes of the memory block to allocate.

     char *ptr (in)	      Pointer to memory block to free or realloc.

     Tcl_DString *dsPtr (in)  Initialized DString pointer.
________________________________________________________________________________

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 malloc() and free() routines provided by the C run-time library.

     Tcl_Alloc	returns  a  pointer  to  a block of at least size bytes suitably
     aligned for any use.

     Tcl_Free makes the space referred to by ptr available for	further  alloca-
     tion.

     Tcl_Realloc  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 dif-
     ferent from ptr.  If ptr is NULL, this is equivalent to  calling  Tcl_Alloc
     with just the size argument.

     Tcl_AttemptAlloc  and  Tcl_AttemptRealloc	are  identical	in  function  to
     Tcl_Alloc and Tcl_Realloc, except that Tcl_AttemptAlloc and  Tcl_AttemptRe-
     alloc  will not cause the Tcl interpreter to panic if the memory allocation
     fails.  If the allocation fails, these functions will  return  NULL.   Note
     that  on  some  platforms, but not all, attempting to allocate a zero-sized
     block of memory will also cause these functions to return NULL.

     The procedures ckalloc, ckfree, ckrealloc, attemptckalloc, and attemptckre-
     alloc are implemented as macros.  Normally, they are synonyms for the  cor-
     responding  procedures  documented  on this page.	When Tcl and all modules
     calling Tcl are compiled with TCL_MEM_DEBUG defined, however, these  macros
     are  redefined  to  be  special debugging versions of these procedures.  To
     support Tcl's memory debugging within a module, use the macros rather  than
     direct calls to Tcl_Alloc, etc.

     Tcl_GetMemoryInfo	appends  a list-of-lists of memory stats to the provided
     DString. This function cannot be used in stub-enabled extensions, and it is
     only available if Tcl is compiled with the threaded memory allocator.

KEYWORDS
     alloc, allocation, free, malloc, memory, realloc, TCL_MEM_DEBUG

Tcl				       7.5			    Tcl_Alloc(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=attemptckrealloc.tcl86&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help