通知
すべてクリア
Topic starter
2005年5月4日 8:43 AM
OS XP VC++6.0
void Cxxxx::aaaa()
{
Cyyyy *wpoint = new Cyyyy [1000] ;
delete wpoint ;
}
delete で以下の中止/無視/継続ウインドウが出て、落ちるんですが、
どのようにデバッグしたらよいか、どなたか、アドバイスいただけませんでしょうか?
Debug Assertion Failed!
Program: C\work\xxxx.exe
File: dgbheap.c
Line: 1044
Expression: _CrtIsValidHeapPointer(pUserData)
For information on how your program can cause an assertion failure,
see the Visual C++ documentation on asserts.
2005年5月4日 9:42 AM
配列wpointの領域がきちんと解放されていないことが原因と思われます。
まずは、newで動的に確保した配列の領域はどのように解放すれば良いのか、C++言語の
参考書などでお調べになることをお勧めします。
対象が「配列」であることに注意してください。
Topic starter
2005年5月4日 10:24 AM
iijima さんありがとうございます。
delete[]演算子を発見しました。
new に対してdelete
new[] に対してdelete[]
ということですね。
void Cxxxx::aaaa()
{
Cyyyy *wpoint = new Cyyyy [1000] ;
delete[] wpoint ; // delete -> delete[] に変更
}