gcc4.7错误 - 解除引用类型惩罚指针

时间:2015-03-17 18:11:18

标签: c gcc4

我有一个要编译的第三方代码,下面是失败的代码段:

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)编译的,我不认为我需要调整编译器标志,最好是修复代码。

我很感激为此得到一些建议。谢谢!

1 个答案:

答案 0 :(得分:3)

像这样:

wqe_t *w1;
memcpy(&w1, work->packet_data, sizeof w1);