我有一个结构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的值?
答案 0 :(得分:2)
只做
int c = ((struct A*) (p->b[0]))->a;
定义
struct A
{
int a;
struct A ** b;
}
这样做
int c = p->b[0]->a;