gpt4 book ai didi

C++动态分配程序崩溃

转载 作者:太空狗 更新时间:2023-10-29 23:28:30 25 4
gpt4 key购买 nike

我有一段非常简单的代码,包含 2 个结构和一个动态分配。程序在“nume”初始化时崩溃。

typedef struct{
int key;
string name;
} TElement;

typedef struct nod {
int cheie;
string nume;
struct nod *stg, *dr;
} NOD;

当我尝试这样做时

void ABC::inserare_element(TElement e){
NOD *p, *q;
int n;
/* construction nod p*/
n=sizeof (NOD);
p=(NOD*)malloc(n);
p->cheie = e.key;
p->nume = e.name; // on this line the program crashes

谢谢

最佳答案

malloc() 不会调用 NOD 的构造函数,这意味着 nume 的构造函数不会被调用,从而导致尝试在未构造/未初始化的 std::string 上使用 std::string::operator=:使用 new

关于C++动态分配程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873644/

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