Unix/Linux Go Back    

RedHat 9 (Linux i386) - man page for alloca (redhat section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

ALLOCA(3)			    Linux Programmer's Manual				ALLOCA(3)

       alloca - memory allocator

       #include <alloca.h>

       void *alloca(size_t size);

       The  alloca function allocates size bytes of space in the stack frame of the caller.  This
       temporary space is automatically freed when the function that called alloca returns to its

       The  alloca  function  returns  a pointer to the beginning of the allocated space.  If the
       allocation causes stack overflow, program behaviour is undefined.

       There is evidence that the alloca function appeared in 32v, pwb, pwb.2,	3bsd,  and  4bsd.
       There  is a man page for it in BSD 4.3.	Linux uses the GNU version.  This function is not
       in POSIX or SUSv3.

       Normally, gcc translates calls to alloca by inlined code. This is not done when either the
       -ansi  or  the  -fno-builtin  option is given. But beware! By default the glibc version of
       <stdlib.h> includes <alloca.h> and that contains the line
	      # define alloca(size)   __builtin_alloca (size)
       with messy consequences if one has a private version of this function.

       The fact that the code is inlined, means that it is impossible to take the address of this
       function, or to change its behaviour by linking with a different library.

       The  inlined  code often consists of a single instruction adjusting the stack pointer, and
       does not check for stack overflow.  Thus, there is no NULL error return.

       The alloca function is machine and compiler dependent. On many systems its  implementation
       is buggy. Its use is discouraged.

       On  many  systems  alloca  cannot be used inside the list of arguments of a function call,
       because the stack space reserved by alloca would appear on the stack in the middle of  the
       space for the function arguments.

       brk(2), pagesize(2), calloc(3), malloc(3), realloc(3)

GNU					    2002-07-17					ALLOCA(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 03:00 PM.