2年前いつもお世話になっております。現在、STGを作成しており、敵の弾をstd::listで管理しているのですが、敵のクラスを削除するとき(恐らく)listの処理の中で例外が投げられて動作がストップしてしまう問題に困っております。この例外の原因解明、および問題の解決方法はあるでしょうか。community以下に該当部分のソースを提示します。削除や登録を行っています。37行目で投げられます。例外が投げられた場所はlist内の1546行目です。Manager::All()は毎フレーム呼び出されます。回答よろしくお願いします。argIndex);};Manager.cppコード://少なくともゲームのメインシーンにおいて各々を管理するためのクラスです。//後々シーン管理なり始めたらなにかしらのクラスの継承先になる可能性があります。arg_shot_kind);Enemy();~Enemy();};Enemy.cppコード://敵のクラス。例外を出すdeleteの上にある,明示的なデストラクタの呼び出しは何のために行っていますか。明示的なデストラクタの呼び出しは,通常必要になることはありません。あと,例外が発生するではなく,その例外の種類やメッセージも書いてください。情報が不足していました、すいません。読み取り中にアクセス違反が発生しました。>明示的なデストラクタの呼び出しは,通常必要になることはありません。知りませんでした、該当箇所から明示的な呼び出しを削除しました。追記:例外の場所前後のソースを張り付けておきます。2年前さらに見てみましたが,deleteした後にそのオブジェクト(の残骸)に触ろうとしていますが,これは何故ですか。deleteした後(明示的なデストラクタの呼び出しでも同じですが)に,そのオブジェクト(の残骸)へアクセスすることは未定義の振る舞いとなっています。オフトピックいくつかの例外はあります。14882:2011だと3.8の5段落など。[]ではなく,std::vector<Enemy>やstd::vector<std::shared_ptr<Enemy>>で十分ではないでしょうか。見てみましたが,deleteした後にそのオブジェクト(の残骸)に触ろうとしていますが,これは何故ですか。deleteした後(明示的なデストラクタの呼び出しでも同じですが)に,そのオブジェクト(の残骸)へアクセスすることは未定義の振る舞いとなっています。オフトピックいくつかの例外はあります。14882:2011だと3.8の5段落など。deleteした後のクラスに触ろうとしていますね...気づきませんでした。[]ではなく,std::vector<Enemy>やstd::vector<std::shared_ptr<Enemy>>で十分ではないでしょうか。最初、弾の管理もすべて配列で行っていましたが、listでの管理に変えてきている状況です。弾をlist管理にしようとしてその作業途中に今回の問題が出てきましたので、質問させていただきました。Enemyもvectorでの管理にしてからまた報告します。進展があったので報告しておきます。Enemyをすべてshared_ptrの管理にしました。結果、例外は発生しなくなりました。変わりましたが、以下に解決後のソースを提示します。LoadEnemyData();};Manager.cppコード://少なくともゲームのメインシーンにおいて各々を管理するためのクラスです。//後々シーン管理なり始めたらなにかしらのクラスの継承先になる可能性があります。ミクプラは自由にリンクできます。