У меня проблемы с динамическим распределением памяти. Как-то, фактический размер моей структуры (сумма всех частей) меньше размера самого типа. Вот код:Размер и распределение памяти
#include <stdio.h>
#include <malloc.h>
struct Lol {
int a;
char b;
char s[20];
};
void main() {
Lol* lol = (Lol*)malloc(sizeof(Lol));
printf("Type size: %d bytes\n", sizeof(Lol));
printf("Actual struct size: %d bytes\n", sizeof(lol -> a) + sizeof(lol -> b) + sizeof(lol -> s));
}
в этом размере случае структура должен быть 25 байт (4 байта для междунар, 1 байт для полукокса и 20 байт массивов символов), но SizeOf (Lol) показывает мне 28 по какой-то причине как и тип char, будет рассматриваться как тип int. Что случилось с этим? Означает ли это, что я теряю 3 байта на ничего?