Namensräume
Varianten
Aktionen

free_aligned_sized

Von cppreference.com
< c‎ | memory
Definiert im Header <stdlib.h>
void free_aligned_sized( void* ptr, size_t alignment, size_t size );
(seit C23)

Wenn ptr ein Nullzeiger ist oder das Ergebnis eines Aufrufs von aligned_alloc, wobei alignment gleich der angeforderten Ausrichtungsallokation und size gleich der angeforderten Allokationsgröße ist, ist diese Funktion äquivalent zu free(ptr). Andernfalls ist das Verhalten undefiniert.

Das Ergebnis eines Aufrufs von malloc, calloc oder realloc darf nicht an free_aligned_sized übergeben werden.

free_aligned_sized ist threadsicher: Es verhält sich so, als ob nur auf die durch sein Argument sichtbaren Speicherorte zugegriffen wird und nicht auf Speicher statischer Dauer.

Ein Aufruf von free_aligned_sized, der einen Speicherbereich freigibt, *synchronisiert sich mit* einem nachfolgenden Aufruf einer beliebigen Zuweisungsfunktion, die denselben oder einen Teil desselben Speicherbereichs zuweist. Diese Synchronisation erfolgt nach jedem Zugriff auf den Speicher durch die freigebende Funktion und vor jedem Zugriff auf den Speicher durch die Zuweisungsfunktion. Es gibt eine einzige Gesamtordnung aller Zuweisungs- und Freigabefunktionen, die auf einen bestimmten Speicherbereich wirken.

Inhalt

[bearbeiten] Parameter

ptr - Zeiger auf den freizugebenden Speicher
alignment - Ausrichtung des freizugebenden Speichers
size - Größe des freizugebenden Speichers

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Beispiel

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.24.3.5 Die Funktion free_sized (p: 366)

[bearbeiten] Siehe auch

alloziert ausgerichteten Speicher
(Funktion) [bearbeiten]
dealloziert zuvor allozierten Speicher
(Funktion) [bearbeiten]
dealloziert zuvor allozierten Speicher mit Größe
(Funktion) [bearbeiten]
alloziert Speicher
(Funktion) [bearbeiten]