Namespaces
Variants

max_align_t

From cppreference.net
< c ‎ | types
Definido en el encabezado <stddef.h>
typedef /*implementation-defined*/ max_align_t ;
(desde C11)

max_align_t es un tipo cuyo requisito de alineación es al menos tan estricto (tan grande) como el de cada tipo escalar.

Contenidos

Notas

Los punteros devueltos por funciones de asignación como malloc están adecuadamente alineados para cualquier objeto, lo que significa que están alineados al menos tan estrictamente como max_align_t .

Ejemplo

#include <inttypes.h>
#include <stdalign.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    size_t a = alignof(max_align_t);
    printf("Alignment of max_align_t is %zu (%#zx)\n", a, a);
    void *p = malloc(123);
    printf("The address obtained from malloc(123) is %#" PRIxPTR"\n",
            (uintptr_t)p);
    free(p);
}

Salida posible:

Alignment of max_align_t is 16 (0x10)
The address obtained from malloc(123) is 0x1fa67010

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.19 Definiciones comunes <stddef.h> (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.19 Definiciones comunes <stddef.h> (p: 211)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.19 Definiciones comunes <stddef.h> (p: 288)

Véase también

Documentación de C++ para max_align_t