Какие гарантии дает malloc относительно выравнивания памяти?

Я наткнулся на следующий код:

int main()
{
    char *A=(char *)malloc(20);
    char *B=(char *)malloc(10);
    char *C=(char *)malloc(10);
    printf("\n%d",A);
    printf("\t%d",B);
    printf("\t%d\n",C);
    return 0;
}  
//output--   152928264     152928288    152928304

Я хочу знать, как распределение и заполнение выполняется с помощью malloc () . Глядя на результат, я вижу, что начальный адрес кратен 8. Есть ли другие правила?

11
задан Ciro Santilli 新疆改造中心法轮功六四事件 16 March 2017 в 08:24
поделиться