结构体定义及使用遇到一个奇怪的问题,求助。谢谢!

2019-07-21 01:25发布

调试中遇到一个奇怪的问题。定义了一个结构体变量,初始化的时候结构体变量的某一个元素总被前一个元素的赋值改写。代码如下:
typedef struct
{
uchar mark;
uchar TID; 
uchar PassType;
uchar encrypmark;    
uchar lenght[4];  
uchar powerinf[4];  
uchar LaneNo[9];  
uchar PassResult[33];
uchar alarmmark;
uchar alarmtime[20];  
uchar GUID[37];
}LANEDATASEND;
LANEDATASEND DataSendToServer;

初始化赋值语句如下:
DataSendToServer.mark = '$';
DataSendToServer.TID = '1';
DataSendToServer.encrypmark = '1';  

strcpy(DataSendToServer.LaneNo, "12345678"); //执行该语句后LaneNo可正常赋值,但是在后面会被无缘无故改写
DataSendToServer.lenght[4] = '';  
DataSendToServer.PassResult[33] = '';
DataSendToServer.PassType = '0';  
DataSendToServer.alarmmark = '0';
DataSendToServer.alarmtime[20] = '';
DataSendToServer.powerinf[4] = '';   //这个赋值语句改写了LaneNo[0]的值。
DataSendToServer.GUID[37] = '';

上面这个情况每次都会出现。我试着改变了结构体定义是各元素的排列顺序。把lenght[4]放到了LaneNo的前面。每次写给lenght赋值的时候,LaneNo同样第一个值也会被改写。这是什么问题,各位大侠帮忙分析一下,谢谢!



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lvehe
1楼-- · 2019-07-21 06:02
 精彩回答 2  元偷偷看……
dms_625
2楼-- · 2019-07-21 08:15
自己顶一下^_^
dms_625
3楼-- · 2019-07-21 08:28
呵呵,谢谢!犯了个低级错误。

一周热门 更多>