#include <stdio.h>
#include <malloc.h>
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 = %d\tb1.pb = %d\n",b1.b,*(int *)(b1.pb));
//如下直接对void指针解引用是错误的
//printf("b1.pb = %d\n",*b1.pb);
//指针结构体要分配空间才能使用
struct A *a1 = (struct A*)malloc(sizeof(struct A));
a1->a = cc;
a1->pa = &b1;
printf("a1->a = %d\t",a1->a);
printf("a1->pa->b= %d\n",((struct B *)a1->pa)->b);
return 0;
}
结构体中的void指针的使用
最新推荐文章于 2023-10-10 22:37:32 发布