- cstdlib[meta header]
- std[meta namespace]
- function[meta id-type]
- cpp26[meta cpp]
namespace std {
size_t memalignment(const void* p);
}- size_t[link /reference/cstddef/size_t.md]
ポインタのアライメントを取得する。
C23で<stdlib.h>に追加された関数であり、C++26で<cstdlib>に取り込まれた。
この関数はフリースタンディング環境でも提供される。
pがヌルポインタでない場合、ポインタ値pを割り切ることができる最大の2の累乗の値を返すpがヌルポインタの場合、0を返す
#include <cstdlib>
#include <print>
int main()
{
void* p = std::aligned_alloc(64, 256);
std::println("{}", std::memalignment(p));
std::free(p);
}- std::memalignment[color ff0000]
- std::aligned_alloc[link aligned_alloc.md]
64
- C++26
- Clang: 22 [mark noimpl]
- GCC: 16.1 [mark noimpl]
- Visual C++: 2026 Update 2 [mark noimpl]
aligned_alloc(): 指定したアライメントでメモリを確保するfree_aligned_sized(): アライメントと確保時のサイズを指定して、確保したメモリを解放する
- P3348R4 C++26 should refer to C23 not C17
- C++26がC23を参照するようになり、この関数が
<cstdlib>に追加された
- C++26がC23を参照するようになり、この関数が