Пустой байт в бинарном файле
Записываю данную структуру в файл.
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