您的位置:首页 > 其它

结构体与字符数组相互转换

2013-06-05 22:38 323 查看
结构体与字符数组相互转换,例如:

typedef struct __STUDENT

{

int iAge;

int iYear;

int iMonth;

}STUDENT,*PSTUDENT;

结构体-->字符串数组 ,方法一

PSTUDENT st = NULL;

st = (PSTUDENT)new char[12];

memset(st,0,12);

st->iAge = 12;

st->iMonth = 14;

st->iYear = 100;

CHAR szBuf[13] = {0};

memcpy(szBuf,st,12);

delete st;

st = NULL;

结构体--->字符串数组 ,方法二

STUDENT st;

st.iAge = 12;

st.IMonth = 12;

st.iYear = 1990;

CHAR szBuf[13] = {0};

memcpy(szBuf,&st,12);

字符串数组--->结构体

PSTUDENT st1 = NULL;

st1 = (PSTUDENT)szBuf;

CString str;

str.Format("%d %d %d",st1->iAge,st1->iMonth,st1->iYear);

MessageBox(str);

问:我在写个socket发送数据包的程序,定义了一个包头和一个数据结构体!

就是不知道怎么传送这个结构体…………

答:结构体当字符数组发,总觉得如果两边体系架构不一致有可能出问题呐。

答:确实,像结构体对齐方式不同,就会出问题,要人为地控制一下了.

答:注意其中整型值的字节序处理,

通用做法都转换为网络字节序,接收端再转成本地字节序。

还有字节对齐,通常用编译指示字强制1字节对其,需要填充的地方用结构体成员显示的填充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: