访问指向联合的指针中的指针

时间:2016-04-25 02:56:17

标签: c pointers struct unions

所以我的结构包含一个union,如下所示:

struct FILL{
  char *name;
  int id;
};

struct TEST{
  union{
    struct FILL *fill;
    int type;
  } *uni;
};

我不了解如何访问结构中的工会成员。我一直试图这样做:

struct TEST *test_struct, *test_int;

test_struct = malloc(sizeof(struct TEST));
test_struct->uni = malloc(sizeof(struct TEST));
test_struct->uni->fill->name = NULL;
test->struct->uni->fill->id = 5;

test_int = malloc(sizeof(int));
test_int->uni->type = 10;

但是当我尝试这个时,我会遇到段错误。我是否访问了这些错误?我该怎么办呢?

编辑:对不起,我专注于格式化,我搞砸了TEST的声明。它已被修复。

1 个答案:

答案 0 :(得分:2)

必须通过ImageView img = (ImageView) findViewById(R.drawable.yourimage); img.setAlpha(100); 分配动态存储或者分配给其他变量来初始化结构的每个指针成员。以下是您的代码的问题:

Bitmap b = BitmapFactory.decodeResources(getResources(), R.drawable.yourimage);

img.setImageBitmap(b);

img.setAlpha(100);

请尝试以下修复:

malloc