可变长数组
在定义结构体时不确定其中一项filed的长度 比如姓名
我们就可以给他定义为
char name[0];
后续在使用时就malloc相应的大小
Person* p = (Person*)malloc(sizeof(struct Person)+ namelength);
p->name = name;
使用数组访问结构体属性
union实现
把结构体中的属性filed定义为另一个数组前几位
struct 正方体{
int weight;
int height;
int length;
};
union{
struct 正方体 a;
int a[3]
}
则a数组里面的三个数值即位struct的三个属性值
不用union实现:
struct person{
Int a[0];
int x;
int y;
int a;
};
a[0]就是x a[1]就是y 也可以通过数组访问