fbpx
分類
Computers 雜七雜八

嗯.. 怪怪的程式

這兩天在寫 (不小心拖了好久) 的 project 時,
遇到了奇怪的問題..

寫出來的資料結構,在大部分狀況下都可以跑,
但總是在一些看似正常的狀況下,malloc 錯誤 Orz

到底是為什麼啊啊アァァァ \囧/

已經在那裡 de 了快三天的 bug,
奇怪的小錯也找出來修正了,但最後這個跑不過就是跑不過,
可見得,裡面還有神祕的小錯誤,而且還是那種一錯就炸的 Orz

嘖,難道是因為我沒有發正念嗎 (默)

在〈嗯.. 怪怪的程式〉中有 4 則留言

你講的 malloc 錯誤,是指 malloc return NULL,還是 call malloc 的時候 core dumped?如果是前者,可以留意一下 system limit 與 memory leaking 方面的問題;後者的話,你一定踩到地雷了,例如要一塊 10 bytes 的空間卻寫了 11 bytes 進去,或是 free 了不該 free 的東西。

之後解決了這個問題了..
不過很怪,因為跟那一行完全沒關係 Orz

個人認為應該是 VC 本身的問題,
或者是跑遞迴的時候造成了一些記憶體的錯誤 @@

總之,最後它變成了吃記憶體怪獸 (哭)

我還要檢查哪裡沒有做好 free 的動作..

記憶體配置/釋放發生錯誤,99.9% 的原因都是人為的(誤踩地雷),即使你拿掉一個 printf() 之後問題消失了,那也不能證明是 printf() 的錯。

另外,Linux/BSD 下有許多免費的 memory leaking 偵測工具可用,VC 我就不曉得了。

VC 上面有函式可以檢查 Memory leaking..

不過用起來十分痛苦 @@

這個程式不是長久使用的,所以能跑就暫時先不理了 (<-- 偷懶)

發表迴響