как malloc понимает выравнивание?

выдержка из здесь

pw = (widget *)malloc(sizeof(widget));

выделяет необработанное хранилище. Действительно, вызов malloc выделяет хранилище достаточно большое и достаточно выровненное, чтобы вместить объект типа widget

также смотрите fast pImpl от Херба Саттера, он сказал:

Alignment. Любая память Выравнивание. Любая память, которая выделяется динамически через new или malloc, гарантированно будет правильно выровнена для объектов любого типа, но буферы, которые не выделяются динамически не имеют такой гарантии

Мне интересно, откуда malloc знает выравнивание пользовательского типа?

47
задан Mat 28 August 2013 в 05:54
поделиться