C 如果只对一个结构进行更改,则反映对两个结构的更改
我有以下结构,其中C 如果只对一个结构进行更改,则反映对两个结构的更改,c,C,我有以下结构,其中access2通过access1间接使用ctx1。假设通过access2设置val1的值,如何确保access1也反映与main()中所示相同的更改 将acc设置为指向该子结构的地址: access1 *acc = &(base2->base1); 您也从未为要指向的base2分配过空间,它应该是: access2 *base2 = malloc(sizeof access2); 不要使用双下划线前缀,它们是为实现保留的。我不太确定你想在这里做什么,但是acc
access2
通过access1
间接使用ctx1
。假设通过access2
设置val1
的值,如何确保access1
也反映与main()
中所示相同的更改
将
acc
设置为指向该子结构的地址:
access1 *acc = &(base2->base1);
您也从未为要指向的base2
分配过空间,它应该是:
access2 *base2 = malloc(sizeof access2);
不要使用双下划线前缀,它们是为实现保留的。我不太确定你想在这里做什么,但是
acc
还没有初始化。@Christiangibons我想他的问题可能是他应该设置什么。使用指针而不是在结构中嵌入结构的副本。@Barmar,没错,我应该怎么做,如果其中一个发生了变化,那么另一个也应该反映关于val1和val2的相同变化
access2 *base2 = malloc(sizeof access2);