[問題] HeapFree()出現中斷
開發平台(Platform): (Ex: VC++, Gcc, Linux, ...)
VC++
問題(Question):
程式執行至某個HeapFree()出現中斷
預期的正確結果(Expected Output):
在中斷之前結果都對的,理應直接結束程式,但卻在最後的HeapFree中斷
http://tinyurl.com/4ncrcsm
因研究藍芽,目前找到這份程式碼
試著執行時卻發生問題
這份程式主要是用socket概念去做藍芽傳輸
server mode時接到client端的資料時完全正確
但在最後(函式RunServerMode最後的)
if ( NULL != lptstrThisComputerName )
{
HeapFree(GetProcessHeap(), 0, lptstrThisComputerName);
lptstrThisComputerName = NULL;
}
我個人認為是memory上的問題,但在HeapFree之前有些檢查過是否為NULL
所以目前想不透是為什麼
中斷出現的訊息為:
Windows 已觸發 test.exe 內的中斷點。
可能是因為堆積損毀,表示 test.exe 內有錯誤或其載入的任何 DLL 內有錯誤。
也有可能是因為 test.exe 取得焦點時使用者按下 F12。
輸出視窗或許有較多的診斷資料。
google到的也都是說free memory之前先檢查是否!NULL
ps. 如果電腦沒藍芽裝置的話,該程式也不能跑
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.13.60
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):