Copyright (C) 2000-2012 |
GNU Info (libc.info)Variable Size AutomaticAutomatic Storage with Variable Size ------------------------------------ The function `alloca' supports a kind of half-dynamic allocation in which blocks are allocated dynamically but freed automatically. Allocating a block with `alloca' is an explicit action; you can allocate as many blocks as you wish, and compute the size at run time. But all the blocks are freed when you exit the function that `alloca' was called from, just as if they were automatic variables declared in that function. There is no way to free the space explicitly. The prototype for `alloca' is in `stdlib.h'. This function is a BSD extension. - Function: void * alloca (size_t SIZE); The return value of `alloca' is the address of a block of SIZE bytes of memory, allocated in the stack frame of the calling function. Do not use `alloca' inside the arguments of a function call--you will get unpredictable results, because the stack space for the `alloca' would appear on the stack in the middle of the space for the function arguments. An example of what to avoid is `foo (x, alloca (4), y)'.
automatically generated by info2www version 1.2.2.9 |