.\" -*- 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 "2. Mai 2024" "Linux man\-pages 6.9.1" .SH BEZEICHNUNG alloca \- Speicher reservieren, der automatisch freigegeben wird .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .P \fBvoid *alloca(size_t \fP\fIGröße\fP\fB);\fP .fi .SH BESCHREIBUNG Die Funktion \fBalloca\fP() reserviert \fIGröße\fP Byte auf im Stapelspeicher\-Frame des Aufrufenden. Dieser temporäre Bereich wird automatisch freigegeben, wenn die Funktion, die \fBalloca\fP() aufrief, zum Aufrufenden zurückkehrt. .SH RÜCKGABEWERT Die Funktion \fBalloca\fP() gibt einen Zeiger auf den Anfang des reservierten Bereichs zurück. Falls das Reservieren einen Überlauf des Stapelspeichers verursachte, ist das Verhalten des Programms undefiniert. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lbx lb lb l l l. Schnittstelle Attribut Wert T{ .na .nh \fBalloca\fP() T} Multithread\-Fähigkeit MT\-Sicher .TE .SH STANDARDS Keine. .SH GESCHICHTE PWB, 32V. .SH ANMERKUNGEN Die Funktion \fBalloca\fP() ist maschinen\- und compilerabhängig. Da sie Speicher vom Stapel reserviert, ist sie schneller als \fBmalloc\fP(3) und\fBfree\fP(3). In bestimmten Fällen kann sie außerdem das Freigeben von Speicher in Anwendungen vereinfachen, die \fBlongjmp\fP(3) oder \fBsiglongjmp\fP(3) benutzen. Andernfalls wird von ihrem Gebrauch abgeraten. .P Da der durch \fBalloca\fP() reservierte Bereich innerhalb des Stapelspeicher\-Frames liegt, wird dieser Bereich automatisch freigegeben, wenn die Funktionsrückkehr durch den Aufruf von \fBlongjmp\fP(3) oder \fBsiglongjmp\fP(3) übersprungen wird. .P Der mittels \fBalloca\fP() reservierte Bereich wird \fInicht\fP automatisch freigegeben, falls der Zeiger, der sich darauf bezieht, den Geltungsbereich verlässt. .P Versuchen Sie nicht, mit \fBfree\fP(3) Speicher freizugeben, der mit \fBalloca\fP() reserviert wurde! .P Notwendigerweise ist \fBalloca\fP() im Compiler eingebaut, auch als \fB__builtin_alloca\fP() bekannt. Standardmäßig übersetzen moderne Compiler automatisch alle Verwendungen von \fBalloca\fP() in die eingebaute Version, allerdings ist dies verboten, falls Standardkonformität erbeten wird (\fI\-ansi\fP, \fI\-std=c*\fP). In diesem Fall wird \fI\fP benötigt, damit keine Symbolabhängigkeit ausgegeben wird. .P Die Tatsache, dass \fBalloca\fP() eine eingebaute Funktion ist, bedeutet, dass es unmöglich ist die Adresse dieser Funktion zu bekommen oder ihr Verhalten zu ändern, indem mit einer anderen Bibliothek gelinkt wird. .P Felder variabler Länge (VLAs) sind Teil des C99\-Standards, optional seit C11 und können für ähnliche Zwecke verwendet werden. Allerdings können sie nicht in Standard\-C++ portiert werden und da sie Variablen sind, leben sie in ihrem blockbezogenen Geltungsbereich und haben keine Allocator\-ähnliche Schnittstelle. Damit sind sie für die Implementierung von Funktionalitäten wie \fBstrdupa\fP(3) ungeeignet. .SH FEHLER Aufgrund der Natur des Stapelspeichers ist es nicht möglich, zu prüfen, ob die Reservierung einen Überlauf beim verfügbaren Platz erzeugt. Daher wird dies weder angezeigt noch ist es ein Fehler. (Allerdings ist es wahrscheinlich, dass das Programm ein Signal \fBSIGSEGV\fP erhält, wenn es versucht, auf den nicht verfügbaren Platz zuzugreifen.) .P Auf vielen Systemen kann \fBalloca\fP() nicht innerhalb der Argumenteliste der aufrufenden Funktion benutzt werden, weil der durch \fBalloca\fP() reservierte Bereich des Stapelspeichers in der Mitte des Bereichs für die Funktionsarumente liegen würde. .SH "SIEHE AUCH" \fBbrk\fP(2), \fBlongjmp\fP(3), \fBmalloc\fP(3) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer , Chris Leick , Mario Blättermann und Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .