typedef struct st_type
{
int nCnt;
int item[0];
}type_a;
- 变长数组作为结构体最后一个成员
- 类型是自动存储类,不进行初始化
- item 不占用结构体空间,内存大小为0,即sizeof(type_a)的值为nCnt的大小
- 变长数组的地址紧接着结构体后面
- 分配空间时一次性分配结构体和变长数组的空间
int num;
...
type_a *p = (type_a *)malloc(sizeof(type_a) + num * sizeof(int));
...
free(p);