Provided by: manpages-fr_1.67.0-1_all bug

NOM

       alloca - Allocation mémoire.

SYNOPSIS

       #include <stdlib.h>

       void *alloca (size_t size);

DESCRIPTION

       La  fonction  alloca  alloue  size  octets  dans  l’espace  de  pile de
       l’appelant. Cet espace temporaire est automatiquement  libéré  lors  du
       retour de la fonction ayant invoqué alloca.

VALEUR RENVOYÉE

       La fonction alloca renvoie un pointeur sur le début de la zone allouée.
       Si l’allocation échoue, le comportement du programme est indéterminé.

HISTORIQUE

       Il semble que alloca soit apparue dans 32v, pwb, pwb.2, 3BSD, et  4BSD.
       Il  y a une page de manuel la décrivant dans BSD 4.3.  Linux utilise la
       version GNU.  Cette fonction n’est décrite ni par POSIX ni par SUSv3.

NOTES SUR LA VERSION GNU

       Normalement, gcc traduit l’appel de alloca par du code  en-ligne.  Ceci
       n’est  pas  le  cas  si  l’option  -ansi  ou  l’option -fno-builtin est
       fournie. Attention ! par défaut la version GlibC de  <stdlib.h>  inclue
       <alloca.h> qui contient la ligne
              # define alloca(size)   __builtin_alloca (size)
       avec  toutes  les  conséquences fâcheuses que cela entraîne si on a une
       fonction personnelle de ce nom.

       Le fait que  le  code  soit  développé  en  ligne  signifie  qu’il  est
       impossible  de  prendre  l’adresse  de  la  fonction  ou de changer son
       comportement en utilisant une bibliothèque différente.

       Le code en ligne consiste souvent une une seule instruction qui  ajuste
       le  pointeur de pile et ne vérifie pas le débordement de pile. Il n’y a
       donc pas de retour d’erreur NULL.

BOGUES

       La fonction alloca dépend de la machine et du  compilateur.  Son  usage
       est déconseillé.

       Sur beaucoup de systèmes alloca ne doit pas être utilisée au sein de la
       liste des arguments d’un  appel  de  fonction,  car  l’espace  de  pile
       réservé  par  alloca  se trouverait alors au milieu de l’espace utilisé
       par les arguments de la fonction.

VOIR AUSSI

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

TRADUCTION

       Christophe Blaess, 1996-2003.