假如说有一个类似这样的结构体
typedef struct a {
int va;
} a;
typedef struct b {
a **q;
a t;
};
有一种情况,我不想使用指针了,怎么才能把q给替换掉,且不会改变他原本的意义??
有!就是将指针指向的变量或结构体赋值给一个普通变量就OK了,但是,仅限于二级指针指向变量或结构体的普通变量,如果指向其他的就另当别论了
如下代码,t可以完美代替**q,所以有些场景不想用指针了就可以使用这个办法
int main()
{
b tmp;
*(tmp.q) = (a *)malloc(sizeof(a));
(*(tmp.q))->va = 100;
tmp.t = *(*(tmp.q));
printf("%d\n", (*(tmp.q))->va);
printf("%d\n", tmp.t.va);
return 0;
}