メンバ変数のdeleteによる解放
Visual C++.NETを用いてプログラムを作成しています。
現在取り組んでいる部分は、クラスのメンバ変数
private : CPoint *ArrayPointStart
を同じクラスのStart()関数で動的生成
this->ArrayPointStart=new CPoint[nCount]; (nCountはint型の整数です)
し、この配列の中に格納したデータをOnTimer()を用いて処理するプログラムです。
処理本体のプログラムはおおかた完成したのですが、最後の締めであるOnTimer()内に書き込んだ
delete [] this->ArrayPointStart;
が実行された時点で
[プログラム名].exe の 0x7c901230 でハンドルされていない例外が発生しました : ユーザー設定のブレークポイント。
というメッセージが表示され、緑色のカーソルはafxmem.cppの
#if _MSC_VER >= 1210
void* __cdecl operator new[](size_t nSize, int nType, LPCSTR lpszFileName, int nLine)
{
return ::operator new(nSize, nType, lpszFileName, nLine);
}
の4行目(returnで始まる行)を指したまま停止してしまいました。
delete []の部分でエラーを起こすことはブレークポイントを設置して確認しましたが、delete[]が行えなければメモリリークを起こす可能性もありますよね。
deleteの構文が間違っているとは考えられないような気がしますが、newした関数内でdeleteしなければならないなどの制約はありますか?
説明不足かもしれませんが、この問題を解決する方法は何かありませんか?