namespace std {
size_t memalignment(const void* p);
}
概要
ポインタのアライメントを取得する。
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);
}
出力例
64
バージョン
言語
- C++26
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌
関連項目
aligned_alloc(): 指定したアライメントでメモリを確保するfree_aligned_sized(): アライメントと確保時のサイズを指定して、確保したメモリを解放する
参照
- P3348R4 C++26 should refer to C23 not C17
- C++26がC23を参照するようになり、この関数が
<cstdlib>に追加された
- C++26がC23を参照するようになり、この関数が