プロジェクトの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 構築の直前に、変数値をハードコーディングしてItemオブジェクトを作成しようとしました。
name = "itemName";
desc = "itemDesc";
id2 = 2;
そしてそれはまだラインでクラッシュします:
Item* tempItem = new Item(name, id2, desc);