C - 结构体指针数组,语法

标签 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 的值?

最佳答案

就这么做

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

定义

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

这样就可以了

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

关于C - 结构体指针数组,语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480741/

相关文章:

c - sed 将//替换为/* */注释,除非//注释出现在/* */中

检查一个字大小的变量在算术运算后是否有进位

java - 如何使用java对文本文件进行排序并保存?

c++ - 链表搜索函数修改列表

c - 奇怪的 malloc 行为

c - C 中数组的奇怪行为

C-扫描字符串并将其分配给结构中的 char* ?

javascript - 在 Javascript 中搜索数组时如何修复输出 'undefined'

java - BufferedImage,转换为字节数组并返回后相同的图像,但灰度转换后不同

c - 将二维数组传递给函数