将通用值从结构复制到可变C

Copy generic value from struct to variable c++

本文关键字:复制 结构      更新时间:2023-10-16

如说明中所述,我需要将一个值从struct中的变量复制到另一个变量,但没有错误,CMD不断崩溃。

struct GateNode
{
    string gatename;
    bool gatenPos=1;
    vector<struct GateNode*>inputs;
    bool (*ptrf)(vector<bool>);//puntatore a una funzione;
};

然后在main()

int main()
{
vector<bool> Op;
GateNode *ptr,g;
ptr=&g;
Op[0]=ptr->gatenPos;
return 0;
}

cmd崩溃,没有给我任何错误!我该如何实现?如果cout ptr-> gatenpos它显示了正确的值,但我无法复制它!

vector<bool> Op;

这创建了一个向量。向量为空。它不包含任何东西。

Op[0]=ptr->gatenPos;

这将某些内容分配给Op中的值#0,即Op中的第一个值。但是,正如我们刚刚确定的那样,Op是空的,不包含任何值。分配给不存在的值是不确定的行为,通常会导致崩溃。

您必须将新值插入向量。Op[something]不会在向量中插入新值,而仅替换必须存在的向量中的现有值。如果不存在,则结果行为是不确定的。

a std::vector包含多个函数,这些函数将新值插入向量,尤其是 push_back()和 insert()。在这种情况下,push_back()将是适当的:

Op.push_back(ptr->gatenPost);