C 将不同的结构成员设置为彼此相等

C 将不同的结构成员设置为彼此相等,c,pointers,struct,typedef,C,Pointers,Struct,Typedef,假设我有两个不同类型的结构 例: 然后它们被初始化如下 void struct_A_init(STRUCT_A *struct_A_pointer) { int i; for(i=0; i<=10; i++) { struct_A_pointer[i].member_A1; struct_A_pointer[i].member_A2; } } void struct_B_init

假设我有两个不同类型的结构 例:

然后它们被初始化如下

 void struct_A_init(STRUCT_A *struct_A_pointer)
 {
       int i;
       for(i=0; i<=10; i++)
       {
           struct_A_pointer[i].member_A1;
           struct_A_pointer[i].member_A2;
       }

 }

 void struct_B_init(STRUCT_B *struct_B_pointer)
 {
      int i;
      for(i=0; i<=10; i++)
      {
           struct_B_pointer[i].member_B1;
           struct_B_pointer[i].member_B2;
      }

 }
如果成员属于同一类型,为什么这不起作用? 目前我有相同的设置,我将值加载到struct_B_指针[7].memberB1中,当我将其设置为等于struct_A_指针[0].member_A1时,它只接收0的值。不是struct_B_指针中的实际情况,我不知道如果成员是相同类型的,为什么会发生这种情况。此外,我还尝试创建一个虚拟变量,并尝试了以下操作

  dummy_Var = struct_B_pointer[7].member_B1;

  struct_A_pointer[0].member_A1 = dummy_Var;
但我得到了同样的结果,我想我可以用这个来欺骗他们的系统:p

如有任何建议或意见,我们将不胜感激

谢谢

这个

 for(i=0; i<=10; i++)
  {
       struct_B_pointer[i].member_B1;
       struct_B_pointer[i].member_B2;
  }

用于(i=0;i显示了显示问题的整个程序。发布整个程序太长了,这是我最初尝试的,我被告知代码太多,我自己的文字不够。您上次的编辑没有添加任何值。到目前为止,抽象示例还可以。因此,我回滚了您上次的编辑。我看到了,但它们被赋予了新值不管code@user6130096:在不同执行阶段检查相关变量时,您可能希望使用调试器单步执行代码。@user6130096:另外,由于索引数组超出范围,请删除对UB的所有调用。在调用UB后,您不能再信任该程序。一切正常从那时起可能会发生。我不确定我知道你所说的UB是什么意思?UB=未定义的行为@user6130096
  dummy_Var = struct_B_pointer[7].member_B1;

  struct_A_pointer[0].member_A1 = dummy_Var;
 for(i=0; i<=10; i++)
  {
       struct_B_pointer[i].member_B1;
       struct_B_pointer[i].member_B2;
  }
 for(i=0; i<10; i++)
  {
       struct_B_pointer[i].member_B1 = 42;
       struct_B_pointer[i].member_B2 = 43;
  }