Skip to content

Latest commit

 

History

History
65 lines (48 loc) · 1.62 KB

File metadata and controls

65 lines (48 loc) · 1.62 KB

memalignment

  • 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

処理系

関連項目

  • aligned_alloc(): 指定したアライメントでメモリを確保する
  • free_aligned_sized(): アライメントと確保時のサイズを指定して、確保したメモリを解放する

参照