3年前Listが未定義ですが、タイトルとコードからstd::list<CObject*>と仮定します。すると、objがListの要素でない時、List.end()であるitrをデリファレンスし、無効な値を比較に使用してしまう。いう所がやばいでしょう。List.end()だった時、追加した後returnするポインタ同士ではなく、それらが指しているオブジェクト同士を比較するようにするといいでしょう。Listが未定義ですが、タイトルとコードからstd::list<CObject*>と仮定します。すると、objがListの要素でない時、List.end()であるitrをデリファレンスし、無効な値を比較に使用してしまう。いう所がやばいでしょう。List.end()だった時、追加した後returnするポインタ同士ではなく、それらが指しているオブジェクト同士を比較するようにするといいでしょう。1は分かったのですが、2の1や2はここでは未定義でしょう。それらが指しているオブジェクト同士を比較するにはどうしたらいいんでしょうかオブジェクト同士を比較するコードに修正し、コンパイルし、実行すればいいです。ポインタに対し単項*演算子を用いるとそのポインタが指しているオブジェクトが得られるので、それを比較しましょう。1は分かったのですが、2の1や2はここでは未定義でしょう。それらが指しているオブジェクト同士を比較するにはどうしたらいいんでしょうかオブジェクト同士を比較するコードに修正し、コンパイルし、実行すればいいです。ポインタに対し単項*演算子を用いるとそのポインタが指しているオブジェクトが得られるので、それを比較しましょう。ミクプラは自由にリンクできます。