-1

我的代码如下

    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 类型的调度时出现分段错误

4

1 回答 1

0

问题是 pkhdr 未初始化。pkhdr 是一个指针,因此默认情况下它不指向任何内容。您需要静态分配对象并将其地址分配给 pkhdr,或者动态分配对象并将其分配给 pkhdr。

例子:

struct packetheader *pkhdr = malloc(sizeof(struct packetheader));
于 2012-09-29T03:51:52.690 回答