在C语言编程中,有时候需要知道某结构体中某成员的大小,比如使用堆内存来存储结构体中的某成员时,需要知道该成员的大小,才好确定所需申请的空间大小。求某结构体中某成员的大小,你会怎么做?
例子:
typedef struct
{
char a;
char c;
short b;
int d;
char e;
}test_struct;
求 d 成员所占内存空间的大小。
方法一
萌新尝试法。。。
我们可以先定义一个结构体变量,然后再使用sizeof求出。
#include <stdio.h>
typedef struct
{
char a;
char c;
short b;
int d;
char e;
}test_struct;
int main(void)
{
test_struct test_s;
printf("sizeof(test_s.d) = %d\n", sizeof(test_s.d));
return 0;
}
运行结果:
但是我们为了得到一个成员的大小,而专门定义一个结构体变量,而这个变量也没有其它的用途,有点浪费资源,