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;
}