Пустой байт в бинарном файле

Записываю данную структуру в файл.

typedef struct stack_bin {
char info[15];
int count; }stack_bin;

Сама функция записи, где confirm() - подтверждение ввода.

void add_to_bin() {
FILE* f = fopen("aaa", "w+b");
while (confirm()) {
    stack_bin* n = (stack_bin*)calloc(1, sizeof(stack_bin));
    printf("\nPrint name\n   ");
    scanf("%s", &(n->info));
    printf("\nPrint count\n   ");
    scanf("%s", &(n->count));
    fwrite(n, sizeof(stack_bin), 1, f);
    rewind(stdin);
}
fclose(f);}

В итоге в бинарном файле между 15-ю байтами чара и 4-мя байтами инта одной структуры возникает пустой байт. Пустых байтов между разными структурами нет. пример

В чём проблема? Или так и должно быть?


Ответы (1 шт):

Автор решения: Pavel Chernitsyn

Полагаю, всё дело в выравнивании данных. Подробнее: https://en.wikipedia.org/wiki/Data_structure_alignment

→ Ссылка