16c57e368SRobert Clausecker.\" 26c57e368SRobert Clausecker.\" Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org> 36c57e368SRobert Clausecker.\" 46c57e368SRobert Clausecker.\" SPDX-License-Identifier: BSD-2-Clause 56c57e368SRobert Clausecker.\" 66c57e368SRobert Clausecker.Dd November 10, 2025 76c57e368SRobert Clausecker.Dt MEMALIGNMENT 3 86c57e368SRobert Clausecker.Os 96c57e368SRobert Clausecker.Sh NAME 106c57e368SRobert Clausecker.Nm memalignment 116c57e368SRobert Clausecker.Nd find the memory alignment of an object 126c57e368SRobert Clausecker.Sh SYNOPSIS 136c57e368SRobert Clausecker.Lb libc 146c57e368SRobert Clausecker.In stdlib.h 156c57e368SRobert Clausecker.Ft size_t 166c57e368SRobert Clausecker.Fn memalignment "const void *ptr" 176c57e368SRobert Clausecker.Sh DESCRIPTION 186c57e368SRobert ClauseckerThe 196c57e368SRobert Clausecker.Fn memalignment 206c57e368SRobert Clauseckerfunction determines the alignment of the object pointed to by 216c57e368SRobert Clausecker.Fa ptr . 226c57e368SRobert ClauseckerThis alignment is a power of\~2, and may be larger than the range 236c57e368SRobert Clauseckersupported by the 246c57e368SRobert Clausecker.Sy alignof 256c57e368SRobert Clauseckeroperator. 266c57e368SRobert ClauseckerThe value returned can be compared to the result of 276c57e368SRobert Clausecker.Sy alignof , 286c57e368SRobert Clauseckerand if it is greater or equal, the alignment requirement of the operand 296c57e368SRobert Clauseckeris satisfied. 306c57e368SRobert Clausecker.Sh RETURN VALUES 316c57e368SRobert ClauseckerReturns the alignment of 326c57e368SRobert Clausecker.Fa ptr 336c57e368SRobert Clauseckeras a power of\~2. 346c57e368SRobert ClauseckerIf 356c57e368SRobert Clausecker.Fa ptr 366c57e368SRobert Clauseckeris a null pointer, an alignment of zero is returned. 376c57e368SRobert ClauseckerAn alignment of zero indicates that the tested pointer cannot be used to 386c57e368SRobert Clauseckeraccess an object of any type. 396c57e368SRobert Clausecker.Sh SEE ALSO 406c57e368SRobert Clausecker.Xr aligned_alloc 3 , 416c57e368SRobert Clausecker.Xr posix_memalign 3 426c57e368SRobert Clausecker.Sh STANDARDS 436c57e368SRobert ClauseckerThe 446c57e368SRobert Clausecker.Fn memalignment 456c57e368SRobert Clauseckerfunction conforms to 466c57e368SRobert Clausecker.St -isoC-2023 . 476c57e368SRobert Clausecker.Sh HISTORY 486c57e368SRobert ClauseckerThe 496c57e368SRobert Clausecker.Fn memalignment 506c57e368SRobert Clauseckerfunction was added in 516c57e368SRobert Clausecker.Fx 15.1. 526c57e368SRobert Clausecker.Sh AUTHOR 536c57e368SRobert Clausecker.An Robert Clausecker Aq Mt fuz@FreeBSD.org 54