#include#include struct A{ int a; void *pa; }; struct B{ int b; void *pb; }; int main(){ struct B b1; b1.b = 1; int cc = 23; b1.pb = &cc; printf("b1.b = %dtb1.pb = %dn",b1.b,*(int *)(b1.pb)); //如下直接对void指针解引用是错误的 //printf("b1.pb = %dn",*b1.pb); //指针结构体要分配空间才能使用 struct A *a1 = (struct A*)malloc(sizeof(struct A)); a1->a = cc; a1->pa = &b1; printf("a1->a = %dt",a1->a); printf("a1->pa->b= %dn",((struct B *)a1->pa)->b); return 0; }



