gpt4 book ai didi

c - 如何确定结构成员的大小?

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

struct busData{
int busNum;
char str[SIZE+1]; //SIZE = 1000
};

int main(){
struct busData *bus = (struct busData*)calloc(5, sizeof(struct busData));


printf("\n%d", sizeof(bus)); //result is 4
free(bus);
return 0;
}

现在它显示“4”或“8”,具体取决于平台。我认为它应该显示 5040 对吗?因为我用 calloc() 给了 5 值。那么我怎样才能得到5040呢?我一直在使用 3 个元素,直到“bus+2”,然后我用 free(bus) 释放了空间;我想知道剩下多少元素(它应该显示 2008)。所以我需要5040?

最佳答案

sizeof(bus)

这里 bus 是一个指针,所以 sizeof() 将返回 4,这是您使用的平台中指针的大小。(取决于所使用的平台)。
如果您想知道结构的大小,请使用 sizeof(struct busData)sizeof(*bus)

关于c - 如何确定结构成员的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44328567/

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