Provided by: manpages-es_1.55-8_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)