Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       alloca - alocă memorie care este eliberată automat

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <alloca.h>

       void *alloca(size_t size);

DESCRIERE

       Funcția  alloca()  alocă  size  octeți de spațiu în cadrul stivei apelantului. Acest spațiu temporar este
       eliberat automat când funcția care a numit alloca() returnează la apelantul său.

VALOAREA RETURNATĂ

       Funcția alloca() returnează un indicator la începutul spațiului alocat. Dacă alocarea cauzează  depășirea
       stivei, comportamentul programului este nedefinit.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │ InterfațăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ alloca()                                                                │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       Niciunul.

ISTORIC

       PWB, 32V.

NOTE

       Funcția  alloca()  este  dependentă de mașină și de compilator. Deoarece alocă din stivă, este mai rapidă
       decât malloc(3) și free(3). În anumite cazuri, poate simplifica și  realocarea  memoriei  în  aplicațiile
       care utilizează longjmp(3) sau siglongjmp(3). În caz contrar, utilizarea sa este descurajată.

       Deoarece  spațiul alocat de alloca() este alocat în cadrul stivei, acel spațiu este eliberat automat dacă
       funcția return este trecută printr-un apel către longjmp(3) sau siglongjmp(3).

       Spațiul alocat de alloca() nu este eliberat automat dacă indicatorul care se referă la acesta iese pur și
       simplu din domeniul de aplicare.

       Nu încercați să executați free(3) pentru a elibera spațiul alocat de alloca()!

       Din necesitate, alloca() este un  compilator  încorporat,  cunoscut  și  ca  __builtin_alloca().  În  mod
       implicit,  compilatoarele  moderne  traduc automat toate utilizările lui alloca() în sistemul încorporat,
       dar acest lucru este interzis dacă se solicită conformitatea cu standardele (-ansi, -std=c*), în care caz
       <alloca.h> este necesar, ca să nu fie emisă o dependență de simbol.

       Faptul că funcția alloca() este încorporată înseamnă că este imposibil să-i iei adresa sau  să-i  schimbi
       comportamentul prin conectarea cu o bibliotecă diferită.

       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 strdupa(3).

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 SIGSEGV dacă încearcă să acceseze spațiul ce nu este disponibil).

       Pe multe sisteme alloca() nu poate fi folosită în lista de argumente a unui  apel  de  funcție,  deoarece
       spațiul  de  stivă  rezervat  de  alloca()  ar  apărea pe stiva din mijlocul spațiului pentru argumentele
       funcției.

CONSULTAȚI ȘI

       brk(2), longjmp(3), malloc(3)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                          alloca(3)