我有以下结构,其中 access2
通过 access1
间接使用 ctx1
。假设如果我通过 access2
设置 val1
的值,我怎样才能确保 access1
也反射(reflect)与 中所示相同的更改主要()
?
typedef struct __ctx1{
int val1;
int val2;
}ctx1;
typedef struct __access1{
int counts;
ctx1 cx1;
}access1;
typedef struct __access2{
int options;
access1 base1;
}access2;
int main(){
access2 *base2;
base2->base1.cx1.val1 = 5;
access1 *acc;
printf("val1 %d\n",acc->cx1.val1);
return 0;
}
最佳答案
设置acc
指向那个子结构的地址:
access1 *acc = &(base2->base1);
你也从来没有为base2
分配空间指向,它应该是:
access2 *base2 = malloc(sizeof access2);
关于c - 如果仅对一个结构进行更改,则反射(reflect)对两个结构的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590883/