.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 1980, 1991 Regents of the University of California. .\" All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)alloca.3 5.1 (Berkeley) 5/2/91 .\" .\" Converted Mon Nov 29 11:05:55 1993 by Rik Faith .\" Modified Tue Oct 22 23:41:56 1996 by Eric S. Raymond .\" Modified 2002-07-17, aeb .\" 2008-01-24, mtk: .\" Various rewrites and additions (notes on longjmp() and SIGSEGV). .\" Weaken warning against use of alloca() (as per Debian bug 461100). .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH alloca 3 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM alloca \- Allouer de la mémoire à libérer automatiquement .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBvoid *alloca(size_t \fP\fIsize\fP\fB);\fP .fi .SH DESCRIPTION La fonction \fBalloca\fP() alloue \fIsize\fP octets dans la pile de l'appelant. Cet espace temporaire est automatiquement libéré lors du retour de la fonction ayant invoqué \fBalloca\fP(). .SH "VALEUR RENVOYÉE" La fonction \fBalloca\fP() renvoie un pointeur sur le début de la zone allouée. Si l'allocation provoque un dépassement de la pile, le comportement du programme est indéterminé. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBalloca\fP() T} Sécurité des threads MT\-Safe .TE .sp 1 .SH STANDARDS Aucun. .SH HISTORIQUE PWB, 32V. .SH NOTES La fonction \fBalloca\fP() dépend de la machine et du compilateur. Comme elle est allouée à partir de la pile, elle est plus rapide que \fBmalloc\fP(3) et \fBfree\fP(3). Dans certains cas, elle peut aussi simplifier la libération de la mémoire dans les applications qui utilisent \fBlongjmp\fP(3) ou \fBsiglongjmp\fP(3). Sinon, son utilisation est déconseillée. .PP Parce que l'espace alloué par \fBalloca\fP() est alloué sur la pile, il est automatiquement libéré si le retour de la fonction est sauté avec un appel à \fBlongjmp\fP(3) ou \fBsiglongjmp\fP(3). .PP L'espace alloué par \fBalloca\fP() n'est \fIpas\fP désalloué automatiquement si le pointeur y faisant référence devient seulement hors de portée. .PP N'essayez pas de libérer l'espace alloué par \fBalloca\fP() à l'aide de la fonction \fBfree\fP(3)\ ! .PP Par nécessité, \fBalloca\fP() est une fonction interne au compilateur, connue aussi sous le nom de \fB__builtin_alloca\fP(). Par défaut, les compilateurs modernes traduisent de façon automatique toutes les utilisations de \fBalloca\fP() en interne, mais cela n'est pas permis si une conformité aux standards est requise (\fI\-ansi\fP, \fI\-std=c*\fP), auquel cas \fI\fP est requis, au cas où une dépendance de symbole serait émise. .PP Le fait que \fBalloca\fP() est une fonction interne signifie qu'il est impossible de prendre son adresse ou de changer son comportement en utilisant une bibliothèque différente. .PP Les tableaux de taille variable (VLA) font partie du standard C99, facultatifs depuis C11, et peuvent être utilisés dans un but similaire. Néanmoins, ils ne sont par portables en C++ standard, et étant variables, ils fonctionnent dans leur périmètre de bloc et n'ont pas d'interface de type allocateur, ce qui les rend inadaptés à l'implémentation de fonctionnalités comme \fBstrdupa\fP(3). .SH BOGUES Du fait de la nature de la pile, il est impossible de vérifier si l'allocation peut déborder de l'espace disponible et par conséquent rien n'indique une erreur (cependant, le programme recevra probablement un signal \fBSIGSEGV\fP s'il essaye d'accéder à l'espace non disponible). .PP Sur beaucoup de systèmes \fBalloca\fP() 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 \fBalloca\fP() se trouverait alors au milieu de l'espace utilisé par les arguments de la fonction. .SH "VOIR AUSSI" \fBbrk\fP(2), \fBlongjmp\fP(3), \fBmalloc\fP(3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Grégoire Scano et Jean-Pierre Giraud . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .