class packet{ int size; void data[0]; }
维护数据包空间的连续性
数据分割位
指向独立的数据空间
无任何作用
class packet{ int size; char *data; }
举个栗子:
class Packet {
public:
int size;
char data[0];//vs不允许定义void数组
};
int main () {
Packet* a = (Packet*)malloc(sizeof(Packet
) +100*sizeof(char));
a->dada[0] = ‘a’;
a->data[99] = ‘b’;
return 0;
}
使用这样的定义可以动态分配所需的空间,并和类本身的数据保持连续。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题