1
我在動態內存分配方面遇到了麻煩。 不知何故,我的結構的實際大小(所有部分的總和)小於類型本身的大小。下面是代碼:類型和內存分配的大小
#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個字節整型,對於char 1個字節和20個字節用於字符數組),但的sizeof(LOL)示出箱28由於某種原因因爲char類型將被視爲int類型。這是怎麼回事?這是否意味着我失去了3個字節?