高级会员

- 积分
- 852
- 金钱
- 852
- 注册时间
- 2015-12-8
- 在线时间
- 176 小时
|
代码如下:
- typedef struct
- {
- int8_t rssi;
- uint8_t mac[6];
- }WifiAP_Str;
- typedef struct
- {
- uint8_t ApNumbet; //扫描到的热点数量
- WifiAP_Str AP[WIFI_AP_MAX]; //热点参数
- uint32_t Timestamp; //时间戳
- }Loction_Wifi_Info_Str;
- Loction_Wifi_Info_Str Wifi_Info = {0};
- Loction_Wifi_Info_Str Mywifi_Info = {0};
- uint8_t data[64] = 0;
- data[0] = 1;
- memcpy(&data[1],&Wifi_Info,sizeof(Wifi_Info));
- 方法1:可以实现Mywifi_Info的赋值
- uint32_t temp = (Loction_Wifi_Info_Str *)&data[1];
- memcpy(&Mywifi_Info ,temp ,sizeof(Mywifi_Info));
- 方法2:可以实现Mywifi_Info 赋值
- memcpy(&Mywifi_Info ,&data[1] ,sizeof(Mywifi_Info));
- 方法3:会进入硬件错误
- memcpy(&Mywifi_Info ,(Loction_Wifi_Info_Str *)&data[1] ,sizeof(Mywifi_Info));
复制代码 请问一下这3种写法中,为什么第3中会进入硬件错误?我觉得应该是和结构体字节对齐有关,但是不知道具体是什么原因,请大神解答一下!!!
|
|