您的位置:首页 > 其它

变长数组(指针高级应用)

2013-03-06 17:22 232 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: