.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1980-1991, Regents of the University of California. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH alloca 3 "29 Octubre 2025" "Linux man\-pages 6.18" .SH NOMBRE alloca \- asigna memoria que se libera automáticamente .SH BIBLIOTECA Biblioteca Estándar C (\fIlibc\fP,\ \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBvoid *alloca(size_t \fP\fIsize\fP\fB);\fP .fi .SH DESCRIPCIÓN La función \fBalloca\fP() concede \fIsize\fP 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 \fBalloca\fP() regresa a su invocador. .SH "VALOR DEVUELTO" La función \fBalloca\fP() 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. .SH ATRIBUTOS Para obtener una explicación de los términos usados en esta sección, véase \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfaz Atributo Valor T{ .na .nh \fBalloca\fP() T} Seguridad del hilo Multi\-hilo seguro .TE .SH ESTÁNDARES Ninguno. .SH HISTORIAL PWB, 32V. .SH NOTAS La función \fBalloca\fP() dependerá de la máquina y del compilador. Dado que asigna desde la pila, es más rápido que \fBmalloc\fP(3) y \fBfree\fP(3). En ciertos casos, también puede simplificar la liberación de memoria en aplicaciones que usan \fBlongjmp\fP(3) o \fBsiglongjmp\fP(3). De lo contrario, se desaconseja su uso. .P Dado que el espacio asignado por \fBalloca\fP() se asigna dentro del marco de la pila, dicho espacio se libera automáticamente si se salta el retorno de la función mediante una llamada a \fBlongjmp\fP(3) o \fBsiglongjmp\fP(3). .P El espacio asignado por \fBalloca\fP() no se libera automáticamente si el puntero que lo referencia simplemente sale del ámbito. Se liberará automáticamente cuando la función que lo llama retorna. .P ¡No intente liberar (\fBfree\fP(3) el espacio asignado por \fBalloca\fP()! .P Por necesidad, \fBalloca\fP() es una función interna del compilador, también conocida como \fB__builtin_alloca\fP(). Por defecto, los compiladores modernos traducen automáticamente todos los usos de \fBalloca\fP() a la función interna, pero esto no puede hacer si se solicita conformidad con estándares (\fI\-ansi\fP, \fI\-std=c*\fP), en cuyo caso se requiere \fI\fP para evitar que se emita una dependencia de símbolo. .P El hecho de que \fBalloca\fP() sea nativo, implica que es imposible tomar la dirección de esta función, o cambiar su comportamiento enlazándola con una biblioteca diferente. .P Los vectores de longitud variable (VLA por sus siglas en inglés) forman parte del estándar C99, son opcionales desde C11 y pueden utilizarse para un propósito similar. Sin embargo, no se adaptan al estándar C++ y, al ser variables, residen en su ámbito de bloque y carecen de una interfaz similar a la de un asignador. Esto hace que sean inadecuadas para implementar funcionalidades como \fBstrdupa\fP(3). .SH ERRORES \fBalloca\fP() does not query the system for available stack memory, and does not fall back to using heap if stack storage is unavailable. It therefore cannot indicate an error if the allocation fails. If the allocation fails, the program is likely to receive a \fBSIGSEGV\fP signal. .P En muchos sistemas \fBalloca\fP() no puede ser utilizada dentro de la lista de argumentos de una llamada a función, porque el espacio de pila reservado por \fBalloca\fP() aparecería en mitad del espacio de pila para los argumentos de la función. .SH "VÉASE TAMBIÉN" \fBbrk\fP(2), \fBlongjmp\fP(3), \fBmalloc\fP(3) .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Sebastian Desimone , Gerardo Aburruzaga García , Miguel Pérez Ibars y Marcos Fouces . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .