我的项目 atm 出现了一些奇怪的错误和崩溃。
它始于我收到此消息的崩溃:
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
所以我开始添加一些cerr << "1"等来尝试找出它在哪一行崩溃。
现在我找到了崩溃行,尽管它没有打印出相同的错误代码。事实上,它什么也没说,只是崩溃。
导致崩溃的行是这样的:
Item* tempItem = new Item(name, id2, desc);
Item.h 构造函数如下所示:
Item(std::string name_, int itemId_, std::string description_ = "")
: name(name_), itemId(itemId_), description(description_){}
我发送的变量如下所示:
string name = "Frying pan";
int id2 = 1;
string desc = "It's all rusty";
有任何想法吗?(如果您需要更多代码,请告诉我您需要什么,我会编辑它)
编辑 一些更新的信息:
name.max_size() = 1073741820
name.length() = 9
desc.max_size() = 1073741820
desc.length() = 14
EDIT2 我现在尝试在构造之前使用硬编码变量值来创建项目对象:
name = "itemName";
desc = "itemDesc";
id2 = 2;
它仍然在该行崩溃:
Item* tempItem = new Item(name, id2, desc);