SIGSEGV访问C中的结构成员



我在C:中有这样的东西

unsigned char a = structTypeInstance->b ;

其中CCD_ 1具有与CCD_ 2相同的类型。

在此基础上,我收到SIGSEGV

为什么?

编辑:我可以访问structTypeInstance以前声明的字段。我唯一的预感是,在为structTypeInstance分配内存的地方,内存是不够的。这可能吗?

是的,这是可能的。但是,由于您拒绝向我们展示声明structTypeInstance的代码,相应结构的整体定义是什么,它被分配到哪里,我们真的不能确定。

有时错误就像写一样简单

struct FOOBAR {
   char big[16380];
   char b[4];
};
struct FOOBAR *foo;
foo = malloc (sizeof foo); /* Allocates just a handful of bytes. */

当你真正的意思是

foo = malloc (sizeof *foo); /* Allocates enough for a complete struct FOOBAR. */

相关内容

  • 没有找到相关文章

最新更新