柔性数组,结构体中char data[0]
主要是在结构体中,实现变长结构体
typedef struct
{
int x;
char data[]; //或 char data[0]并不占用内存
}s;
int main(int argc, char *argv[])
{
s*p = static_cast<s*>(malloc(100));
strcpy(p->data,"qwqrqqrrqq");
cout << p->data ;
free(p);
system("pause");
return 0;
}
其中data紧跟着结构体末尾,
并且不占内存,
如果分配出来的内存大于sizeof int,那么data是 多出来的内存首地址,从而实现边长结构体