例如:
struct varlendata
{
int len;
char data[0];
};
sizeof(varlendata)的值是4,就是说data所占的空间为0
因此,如果我们要存储len字节的数据,我们可以这样
char* pbuf = new char[sizeof(varlendata)+len];
varlendata* pdata = (varlendata*)pbuf;
pdata->len = len;
memcpy(pdata->data, data, len);
在网络协议中,使用这种方法特别方便
struct varlendata
{
int len;
char data[0];
};
sizeof(varlendata)的值是4,就是说data所占的空间为0
因此,如果我们要存储len字节的数据,我们可以这样
char* pbuf = new char[sizeof(varlendata)+len];
varlendata* pdata = (varlendata*)pbuf;
pdata->len = len;
memcpy(pdata->data, data, len);
在网络协议中,使用这种方法特别方便