gpt4 book ai didi

c++ - 代码无法输入名称?

转载 作者:行者123 更新时间:2023-11-27 23:56:54 25 4
gpt4 key购买 nike

无法对类进行任何更改,因此我无法添加任何为我设置名称的新函数。

class ele
{

char* name;
public:

ele() :name(nullptr){}
~ele()
{
if (name)
delete[]name;
}
char*& GetName();
};

#endif

我尝试访问该名称,但在 cin 调试断言失败后它给了我错误。无效的空指针。

>   `     char*& ele::GetName()
{
cout << "Please Enter the name"<< endl;
cin >> this->name;
return this->name;
}`

最佳答案

如果你不能改变你的类(和使用std::string)你至少需要在cin>>this->name之前分配内存,现在你是使用一个空指针,即 UB。所以你的修复看起来如下:

if (this->name == nullptr)
this->name = new char[64]; // << !!
cin >> this->name;

关于c++ - 代码无法输入名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42031233/

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