プログラムで不可解なエラーやクラッシュが発生します。デバッグを進めて見回すと、変数を NULL に設定していることに気付きましたが、直後にブレークポイントを設定する0xcdcdcd00
と、NULL に設定しただけなのに変数が に設定されます。
プログラムで何らかのメモリ破損が発生しているようです。
メモリ破損の原因を特定するための優れた手法は何ですか? これが発生する前に大量のコードを追加したので、コードを調べているときに、メモリの破損を引き起こす可能性のあるものを探す必要がありますか?
というクラスmonster
から派生した というクラスがありますmob
次のコードを実行します。
monster* newMon = new monster();
モンスタークラスのコンストラクターを呼び出します:
monster::monster() : mob() {
this->renderer = NULL;
}
この関数の最後でブレークすると、renderer =0xcdcdcd00
または時々0xcdcdcdcd