C - 指向struct,syntax的指针数组

时间:2016-04-07 15:29:24

标签: c arrays pointers struct

我有一个结构A和一个指向该结构实例的指针数组 我正在尝试直接从数组访问成员,但我不知道这样做的正确语法是什么:

struct A  
{  
  int a;  
  void** b;  
}

A* p = (A*) malloc(sizeof(A));  
p->b = (A**) malloc(sizeof(A*) * 3);

//
// something is done
//

int c;

A* test = p->b[0];
c = test->a;

基本上我要问的是如何摆脱中间A *测试,以便我可以在一行中分配c的值?

1 个答案:

答案 0 :(得分:2)

只做

int c = ((struct A*) (p->b[0]))->a;

定义

struct A  
{  
  int a;  
  struct A ** b;  
}

这样做

int c = p->b[0]->a;