我的代码如下
struct packetheader
{
__u16 fcf;
__u8 seq;
__u8 dest[16];
__u8 src[16];
#if defined dis
__u32 dispatch;
#endif
}
struct packetheader* uncompressed()
{
struct packetheader *pkhdr;
pkhdr->dispatch=0x00000000;//segmentation fault
return pkhdr;
}
尝试将值分配给__u32类型的调度时出现分段错误
问题是 pkhdr 未初始化。 pkhdr 是一个指针,因此默认情况下它不指向任何内容。您需要静态分配对象并将其地址分配给 pkhdr,或者动态分配对象并将其分配给 pkhdr。
例:
struct packetheader *pkhdr = malloc(sizeof(struct packetheader));