柔性数组,结构体中char data[0]

梦想游戏人
目录:
C/C++

主要是在结构体中,实现变长结构体

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是  多出来的内存首地址,从而实现边长结构体
Scroll Up