Заполнение структурного типа внутри конструкций - PullRequest
0 голосов
/ 15 февраля 2019

Я не понимаю размер struct_b, когда пытаюсь вставить в нее другой массив struct типа struct_a.Я знаю, что размер struct_a составляет 16 байтов.Но когда дело доходит до struct_b, я предполагаю, что должно быть 2 * 16 + 160 = 192 байта, но на самом деле это 184 байта.Можете ли вы объяснить это, пожалуйста?Спасибо!

struct struct_a{
    char id[5];
    float f;
    int n;
};

struct struct_b{
    char name[24];
    struct struct_a array[10];
};


1 Ответ

0 голосов
/ 15 февраля 2019

Потому что name - это тип char.таким образом, 1 означает, что 1 * 24 = 24 bytes, а размер struct_a составляет 16 байтов.Итак, 16*10 = 160.

Вот почему размер struct_b составляет 184 байта.

24 + 160 = 184 bytes.
...