Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      memalignment

      From cppreference.com
      <c‎ |program
       
       
      Program support utilities
      Program termination
      Unreachable control flow
      Communicating with the environment
      Memory alignment query
      memalignment
      (C23)
      Signals
      Signal types
      Non-local jumps
      Types
       
      Defined in header<stdlib.h>
      size_t memalignment(constvoid*p);
      (since C23)

      Returns the maximum alignment satisfied by the provided address. The return value can be greater than any alignment value supported by the implementation. Ifp is a null pointer value,0 is returned to indicate that the pointer cannot be used to access an object of any type.

      If the return value compares is greater than or equal toalignof(T), the alignment requirement for the typeT is satisfied by the pointer.

      Afreestanding implementation needs to providememalignment.

      Contents

      [edit]Parameters

      p - pointer to query alignment

      [edit]Return value

      The alignment value ofp, or0 ifp is a null pointer value.

      [edit]Notes

      On common platforms where

      • null pointers are cast to integer0,
      • pointer values are directly cast to the numeric values of virtual addresses, and
      • size_t is same asuintptr_t,

      this function can be implemented asreturn(size_t)p&-(size_t)p;.

      [edit]Example

      Run this code
      #include <stdio.h>#include <stdlib.h> int main(){    alignas(128)int i=0;printf("%zu\n%zu\n", memalignment(nullptr), memalignment(&i));}

      Possible output:

      0128

      [edit]References

      • C23 standard (ISO/IEC 9899:2024):
      • 7.24.9.1 The memalignment function (p: 374)

      [edit]See also

      allocates aligned memory
      (function)[edit]
      deallocates previously allocated sized and aligned memory
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/program/memalignment&oldid=176982"

      [8]ページ先頭

      ©2009-2025 Movatter.jp