C语言结构体内存分配问题

#include <stdio.h>
#include <stdlib.h>

typedef struct Temp
{
    unsigned char a;
    unsigned short b;
    unsigned char c;

}AA;

AA BB;

int main()
{
    printf("a:%x\r\n",&BB.a);
    printf("b:%x\r\n",&BB.b);
    printf("c:%x\r\n",&BB.c);
    return 0;
}

可见,结构体的内存是按结构体内成员占用内存最多的成员分配的!

如上面的例子,成员b是short型,16位,所以结构体内存按16位分配,即2字节对其!

猜你喜欢

转载自blog.csdn.net/qq_24835087/article/details/81951233
今日推荐