主题:拷贝结构体变量总丢失数据
问题如题目,代码如下:
typedef struct MsgHeader{
char MsgNo[3];
char MsgFromNodeno[6];
char MsgType[13];
char MsgToNodeno[4];//消息的目的节点,右对齐,左边填'0'
}MSGHEADER;
int main(int argc, char* argv[])
{
char string[27]="11166666601234567891234444";
char sMsgNo[3],sMsgFromNodeno[6],sMsgType[13],sMsgToNodeno[4];
MSGHEADER *ph=new MSGHEADER;
memset(ph,0,sizeof(MSGHEADER));
memcpy(ph,string,sizeof(MSGHEADER));
memset(sMsgNo,0,sizeof(sMsgNo));
//memmove(sMsgNo,ph->MsgNo,sizeof(ph->MsgNo));
sprintf(sMsgNo,"%.3s",ph->MsgNo);
memset(sMsgType,0,sizeof(sMsgType));
//memmove(sMsgType,ph->MsgType,sizeof(ph->MsgType));
sprintf(sMsgType,"%.13s",ph->MsgType);
memset(sMsgFromNodeno,0,sizeof(sMsgFromNodeno));
//memcpy(sMsgFromNodeno,ph->MsgFromNodeno,sizeof(ph->MsgFromNodeno));
sprintf(sMsgFromNodeno,"%.6s",ph->MsgFromNodeno);
memset(sMsgToNodeno,0,sizeof(sMsgToNodeno));
//memmove(sMsgToNodeno,ph->MsgToNodeno,sizeof(ph->MsgToNodeno));
sprintf(sMsgToNodeno,"%.4s",ph->MsgToNodeno);
return 0;
}
每次调试到return 0;,sMsgType【0】显示为空,之前调试时数据都对,这是我的一个测试程序。
实例中也遇到这个问题。
请问大家怎么解决啊???
谢谢啊
typedef struct MsgHeader{
char MsgNo[3];
char MsgFromNodeno[6];
char MsgType[13];
char MsgToNodeno[4];//消息的目的节点,右对齐,左边填'0'
}MSGHEADER;
int main(int argc, char* argv[])
{
char string[27]="11166666601234567891234444";
char sMsgNo[3],sMsgFromNodeno[6],sMsgType[13],sMsgToNodeno[4];
MSGHEADER *ph=new MSGHEADER;
memset(ph,0,sizeof(MSGHEADER));
memcpy(ph,string,sizeof(MSGHEADER));
memset(sMsgNo,0,sizeof(sMsgNo));
//memmove(sMsgNo,ph->MsgNo,sizeof(ph->MsgNo));
sprintf(sMsgNo,"%.3s",ph->MsgNo);
memset(sMsgType,0,sizeof(sMsgType));
//memmove(sMsgType,ph->MsgType,sizeof(ph->MsgType));
sprintf(sMsgType,"%.13s",ph->MsgType);
memset(sMsgFromNodeno,0,sizeof(sMsgFromNodeno));
//memcpy(sMsgFromNodeno,ph->MsgFromNodeno,sizeof(ph->MsgFromNodeno));
sprintf(sMsgFromNodeno,"%.6s",ph->MsgFromNodeno);
memset(sMsgToNodeno,0,sizeof(sMsgToNodeno));
//memmove(sMsgToNodeno,ph->MsgToNodeno,sizeof(ph->MsgToNodeno));
sprintf(sMsgToNodeno,"%.4s",ph->MsgToNodeno);
return 0;
}
每次调试到return 0;,sMsgType【0】显示为空,之前调试时数据都对,这是我的一个测试程序。
实例中也遇到这个问题。
请问大家怎么解决啊???
谢谢啊