#include <iostream>
using namespace std;
#pragma pack(1)//禁用字节对齐
struct curData
{
char data[0];//变长数组,这类应用一般适合于服务器之间转发的协议,节省内存
//int type;
};
#pragma pack()
int main()
{
std::cout<<sizeof(curData)<<std::endl;
curData* myData = new curData();
char* curDataTag = myData->data;
char* myCurData = myData->data;
*(int*)myCurData = 10;
//myCurData->data[1] = 16;
myCurData += sizeof(int);//指针往后移sizeof(int),继续存其它的数据
*(long long*)myCurData = 8589934592;
myCurData += sizeof(long long);
*(long long*)myCurData = 999999;
std::cout<<*(int*)(curDataTag)<<std::endl;
curDataTag += sizeof(int);
std::cout<<*(long long*)curDataTag<<std::endl;
curDataTag += sizeof(long long);
std::cout<<*(long long*)curDataTag<<std::endl;
return 0;
}