gpt4 book ai didi

c - 类型的大小和内存分配

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:43 24 4
gpt4 key购买 nike

<分区>

我在动态内存分配方面遇到了麻烦。不知何故,我的结构的实际大小(所有部分的总和)小于类型本身的大小。这是代码:

#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 个字节(int 为 4 个字节,char 为 1 个字节,char 数组为 20 个字节),但 sizeof(Lol) 出于某种原因向我显示 28,因为 char 类型将被视为 int类型。这一切是怎么回事?这是否意味着我什么都没有丢失 3 个字节?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com