作者dreamboat66 (小嫩)
看板C_and_CPP
標題[問題] 堆積損毀 找不出問題出在哪
時間Sun Apr 19 02:53:34 2009
我delete 掉一個我new出來的空間時
他會觸發一個 錯誤
訊息是下面這樣...
========================================================================
Windows 已觸發 X.exe 內的中斷點。
可能是因為堆積損毀,表示 X.exe 內有錯誤或其載入的任
何 DLL 內有錯誤。
也有可能是因為 X.exe 取得焦點時使用者按下 F12。
輸出視窗或許有較多的診斷資料。
========================================================================
停在
free.c的
#endif /* _WIN64 */
{
retval = HeapFree(_crtheap, 0, pBlock); <=========這行...
如果按繼續
他就會出現
expression:_CrtIsValidHeapPointer~~
google一下 說是delete到 一個根本沒new東西的指標
可是我應該都有new阿 @@
我測試這個delete 沒new的指標
是停在_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
問題應該不是出在這@@
我trace了好久的時間
我對這指標指到的結構 沒有做任何更動
程式突然發現會出現這個錯誤 之前delete這指標都沒有事情........
想請教問題大概出在哪裡??
請經驗豐富的版友可否提供我一些線索...
本來想說是程式結束才會壞 乾脆算了 但實在很想找出問題@@
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.130.67
※ 編輯: dreamboat66 來自: 220.136.130.67 (04/19 03:05)
※ 編輯: dreamboat66 來自: 220.136.130.67 (04/19 03:10)
→ james732:把程式碼貼出來看看吧? 04/19 03:14
→ dreamboat66:因為程式很大很大 我只是改別人的~ 沒辦法貼 04/19 03:20
→ dreamboat66:從google找到的資料都怪怪的..... 04/19 03:20
→ dreamboat66:而我剛剛竟然重建專案 問題就不再出現...很詭異 04/19 03:21
→ dreamboat66:是跟dll有關係嗎? 04/19 03:21
推 LiloHuang:dll裡面配置的就要在dll裡面歸還 04/19 06:32
→ dreamboat66:可是我完全沒有自己去作dl只是用該用的dll而已@@ 04/19 13:57