尝试将值赋给__u32类型时出现分段错误

时间:2012-09-29 03:45:37

标签: segmentation-fault

我的代码如下

    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类型

的分派时,会出现分段错误

1 个答案:

答案 0 :(得分:0)

问题是pkhdr未初始化。 pkhdr是一个指针,所以默认它指向什么。您需要通过statitcally分配对象并将其地址分配给pkhdr,或者动态分配对象并将其分配给pkhdr。

示例:

struct packetheader *pkhdr = malloc(sizeof(struct packetheader));