gpt4 book ai didi

c++ - 将通用值从结构复制到变量 C++

转载 作者:行者123 更新时间:2023-11-28 05:37:37 26 4
gpt4 key购买 nike

如描述中所述,我需要将一个值从结构中的一个变量复制到另一个变量,但它没有给我任何错误,并且 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;

这将创建一个 vector 。 vector 为空。它不包含任何内容。

Op[0]=ptr->gatenPos;

这给 Op 中的值 #0 赋值,即 Op 中的第一个值。然而,正如我们刚刚确定的那样,Op 是空的,不包含任何值。分配给不存在的值是未定义的行为,通常会导致崩溃。

您必须向 vector 中插入一个新值。 Op[something] 不会在 vector 中插入新值,它只是替换 vector 中必须存在的现有值。如果它不存在,则结果行为是未定义的。

std::vector 包含几个将新值插入 vector 的函数,特别是 push_back() 和 insert()。在这种情况下,push_back() 将是合适的:

Op.push_back(ptr->gatenPost);

关于c++ - 将通用值从结构复制到变量 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37891763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com