2013年9月30日 星期一

HEAP CORRUPTION DETECTED

最近在Visual Studio 2010 上開發了一個工具,
在 detete 一塊記憶體的時候跳出了一個錯誤訊息

找了幾天沒發現原因, 後來靠google大神才知道
這個錯誤在debug mode的時候才會出現,
release mode不一定會出現
原因是debug mode在malloc時會多alloc一些memory
以便檢查是否有寫過頭的情況發生

其實在錯誤訊息舊有提到 "CRT detected that the application wrote to memory after end of heap buffer"

後來去trace 後發現, vc在 alloc 的這段memory前後都放了一些檢查碼來check是否有寫過頭的現象發生, 如果在debug mode有出現這些訊息而release mode沒有出現的時候
就不要不放在心上, 不然哪天程式冒出不知明原因的錯誤就不好找了

ps: CRT 指的應該就是 C RunTime lib

沒有留言:

張貼留言