delete で落ちるんですが・・・ – プログラミング – Home

delete で落ちるんですが・・・
 
通知
すべてクリア

[解決済] delete で落ちるんですが・・・


ガラ
 ガラ
(@ガラ)
ゲスト
結合: 20年前
投稿: 201
Topic starter  

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.


引用未解決
トピックタグ
iijima
 iijima
(@iijima)
ゲスト
結合: 21年前
投稿: 44
 

配列wpointの領域がきちんと解放されていないことが原因と思われます。
まずは、newで動的に確保した配列の領域はどのように解放すれば良いのか、C++言語の
参考書などでお調べになることをお勧めします。
対象が「配列」であることに注意してください。


返信引用
ガラ
 ガラ
(@ガラ)
ゲスト
結合: 20年前
投稿: 201
Topic starter  

iijima さんありがとうございます。
delete[]演算子を発見しました。

new に対してdelete
new[] に対してdelete[]
ということですね。

void Cxxxx::aaaa()
{
Cyyyy *wpoint = new Cyyyy [1000] ;
delete[] wpoint ; // delete -> delete[] に変更
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました