我有一个要编译的第三方代码,下面是失败的代码段:
typedef struct wqe_s {
...
uint8_t packet_data[96]
...
} wqe_t;
..
wqe_t *work = NULL;
..
wqe_t *w1 = *(wqe_t **)work->packet_data; // ERROR
错误:解除引用类型惩罚指针将破坏严格别名 规则
它是用gcc-4.7(-Wall -Werror)编译的,我不认为我需要调整编译器标志,最好是修复代码。
我很感激为此得到一些建议。谢谢!
答案 0 :(得分:3)
像这样:
wqe_t *w1;
memcpy(&w1, work->packet_data, sizeof w1);