Provided by: manpages-es_1.55-10_all bug

NOMBRE

       alloca - concede memoria

SINOPSIS

       #include <alloca.h>

       void *alloca( size_t  size );

DESCRIPCIÓN

       La  función  alloca  concede  size  bytes de espacio en el marco de pila (stack frame) del
       invocador.  Este espacio temporal se libera automáticamente cuando la función que llamó  a
       alloca regresa a su invocador.

VALOR DEVUELTO

       La  función  alloca  devuelve  un puntero al comienzo del espacio concedido. Si la reserva
       provoca un desbordamiento de pila, el comportamiento del  programa  es  indefinido.   Esta
       función no se encuentra en POSIX ni SUSv3.

NOTAS DE LA VERSIÓN GNU

       Normalmente, gcc traduce las llamadas a alloca por código inline. Ésto no es así cuando se
       especifica o bien la opción -ansi o  bien  la  opción  -fno-builtin.  Pero  atención!  Por
       defecto la versión glibc de <stdlib.h> incluye <alloca.h> y éste contiene la línea
              # define alloca(size)   __builtin_alloca (size)
       lo que puede provocar confusión si se dispone de una versión privada de esta función.

       El  hecho de que el código sea inline, implica que es imposible tomar la dirección de esta
       función, o cambiar su comportamiento enlazándola con una biblioteca diferente.

       El código inline consiste a menudo en una sola instrucción ajustando el puntero de pila, y
       no comprueba un posible desbordamiento de pila.  Por tanto, no se devuelve un error NULL.

FALLOS

       La  función  alloca  es  dependiente de la máquina y del compilador. En muchos sistemas su
       implementación es defectuosa. Su uso está desaconsejado.

       En muchos sistemas alloca no puede ser utilizada dentro de la lista de argumentos  de  una
       llamada  a función, porque el espacio de pila reservado por alloca aparecería en mitad del
       espacio de pila para los argumentos de la función.

HISTORIA

       Hay evidencias de que la función alloca apareció en 32v, pwb, pwb.2, 3bsd, y 4bsd. Hay una
       página de manual para ella en BSD 4.3.  Linux usa la versión de GNU.

VÉASE TAMBIÉN

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