可以定义长度为0的数组,这样的数组被称为零长数组或者柔性数组,通常被用在结构体中存放长度可变的数据。
拓展:
struct node
{
int a;
float f;
char data[0];
};
在给结构体分配内存的时候,我们会根据需要多分配多一点内存。
struct node *p = malloc(sizeof(struct node) + 50);
这样,data这个数组就相当于拥有50个字节,因此它的合法范围是data[0] - data[49]
可以定义长度为0的数组,这样的数组被称为零长数组或者柔性数组,通常被用在结构体中存放长度可变的数据。
拓展:
struct node
{
int a;
float f;
char data[0];
};
在给结构体分配内存的时候,我们会根据需要多分配多一点内存。
struct node *p = malloc(sizeof(struct node) + 50);
这样,data这个数组就相当于拥有50个字节,因此它的合法范围是data[0] - data[49]