柔性数组不占用struct的空间, 而是额外分配的空间
typedef struct _softArray{
int len;
int a[];
}softArray;//此时是两个int的大小
int length;
scanf("%d", &length);
softArray *p = (softArray*)malloc(sizeof(softArray) + sizeof(int) * length);
//此时得到了一个长度为10的数组;
for(int i = 0; i< length; i++)
{
p->a[i] = i;
}
free(p);
网友评论