siguientes Extraído de here¿Cómo entiende malloc la alineación?
pw = (widget *)malloc(sizeof(widget));
asigna almacenamiento prima. De hecho, la llamada malloc asigna almacenamiento que es lo suficientemente grande y convenientemente alineada para sostener un objeto de tipo widget de
también ver fast pImpl de Sutter hierba, dijo:
alineación. Cualquier alineación de memoria. Cualquier memoria que se asigna dinámicamente vía nueva o malloc se garantiza que sea alineado correctamente para objetos de cualquier tipo, pero tampones que no están asignadas dinámicamente no tienen esa garantía
tengo curiosidad por esto, ¿cómo ¿Malloc conoce la alineación del tipo personalizado?
new y malloc, de forma predeterminada, alinean la dirección a 8 bytes (x86) o 16 bytes (x64), que es la óptima para la mayoría de los datos complejos. También es un deber de sizeof() obtener la estructura de tamaño correcto ** con ** relleno interno para la alineación, si es necesario. –