最終更新日時(UTC):
が更新

履歴 編集

function
<cstdlib>

std::memalignment(C++26)

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

処理系

関連項目

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

参照