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,  at-
       temptckrealloc -	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 allo-
       cation.

       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 un-
       changed up to the lesser	of the new and old sizes.  The returned	 loca-
       tion  may be different 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_At-
       temptRealloc 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  at-
       temptckrealloc  are implemented as macros.  Normally, they are synonyms
       for the corresponding procedures	documented on this page.  When Tcl and
       all modules calling Tcl are compiled with TCL_MEM_DEBUG	defined,  how-
       ever,  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 pro-
       vided 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=ckalloc.tcl86&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help