.\" -*- 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 iulie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME alloca \- alocă memorie care este eliberată automat .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBvoid *alloca(size_t \fP\fIsize\fP\fB);\fP .fi .SH DESCRIERE Funcția \fBalloca\fP() alocă \fIsize\fP octeți de spațiu în cadrul stivei apelantului. Acest spațiu temporar este eliberat automat când funcția care a numit \fBalloca\fP() returnează la apelantul său. .SH "VALOAREA RETURNATĂ" Funcția \fBalloca\fP() returnează un indicator la începutul spațiului alocat. Dacă alocarea cauzează depășirea stivei, comportamentul programului este nedefinit. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBalloca\fP() T} Siguranța firelor MT\-Safe .TE .sp 1 .SH STANDARDE Niciunul. .SH ISTORIC PWB, 32V. .SH NOTE Funcția \fBalloca\fP() este dependentă de mașină și de compilator. Deoarece alocă din stivă, este mai rapidă decât \fBmalloc\fP(3) și \fBfree\fP(3). În anumite cazuri, poate simplifica și realocarea memoriei în aplicațiile care utilizează \fBlongjmp\fP(3) sau \fBsiglongjmp\fP(3). În caz contrar, utilizarea sa este descurajată. .PP Deoarece spațiul alocat de \fBalloca\fP() este alocat în cadrul stivei, acel spațiu este eliberat automat dacă funcția return este trecută printr\-un apel către \fBlongjmp\fP(3) sau \fBsiglongjmp\fP(3). .PP Spațiul alocat de \fBalloca\fP() \fInu\fP este eliberat automat dacă indicatorul care se referă la acesta iese pur și simplu din domeniul de aplicare. .PP Nu încercați să executați \fBfree\fP(3) pentru a elibera spațiul alocat de \fBalloca\fP()! .PP Din necesitate, \fBalloca\fP() este un compilator încorporat, cunoscut și ca \fB__builtin_alloca\fP(). În mod implicit, compilatoarele moderne traduc automat toate utilizările lui \fBalloca\fP() în sistemul încorporat, dar acest lucru este interzis dacă se solicită conformitatea cu standardele (\fI\-ansi\fP, \fI\-std=c*\fP), în care caz \fI\fP este necesar, ca să nu fie emisă o dependență de simbol. .PP Faptul că funcția \fBalloca\fP() este încorporată înseamnă că este imposibil să\-i iei adresa sau să\-i schimbi comportamentul prin conectarea cu o bibliotecă diferită. .PP Matricele de lungime variabilă (VLA) fac parte din standardul C99, opțional începând cu C11 și pot fi utilizate într\-un scop similar. Cu toate acestea, ele nu sunt adaptate la standardul C++ și, fiind variabile, trăiesc în domeniul lor de bloc și nu au o interfață asemănătoare alocatorului, ceea ce le face inadecvate pentru implementarea funcționalității precum \fBstrdupa\fP(3). .SH ERORI Din cauza naturii stivei, este imposibil să se verifice dacă alocarea ar depăși spațiul disponibil și, prin urmare, nici nu indică o eroare; (cu toate acestea, este probabil ca programul să primească un semnal \fBSIGSEGV\fP dacă încearcă să acceseze spațiul ce nu este disponibil). .PP Pe multe sisteme \fBalloca\fP() nu poate fi folosită în lista de argumente a unui apel de funcție, deoarece spațiul de stivă rezervat de \fBalloca\fP() ar apărea pe stiva din mijlocul spațiului pentru argumentele funcției. .SH "CONSULTAȚI ȘI" \fBbrk\fP(2), \fBlongjmp\fP(3), \fBmalloc\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .