我的代码如下
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类型
的分派时,会出现分段错误答案 0 :(得分:0)
问题是pkhdr未初始化。 pkhdr是一个指针,所以默认它指向什么。您需要通过statitcally分配对象并将其地址分配给pkhdr,或者动态分配对象并将其分配给pkhdr。
示例:
struct packetheader *pkhdr = malloc(sizeof(struct packetheader));