2010-03-13 90 views
0

我想知道爲什麼隨機執行./a.out後,我得到以下。任何想法我做錯了什麼?由於內存(泄漏)執行後

http://img710.imageshack.us/img710/8708/trasht.png http://img710.imageshack.us/img710/8708/trasht.png

http://img710.imageshack.us/img710/8708/trasht.png

+0

雙的FreeS可以是非常棘手/苦苦追尋的,但所有瑣碎的程序。所以,要小心。 – dirkgently 2010-03-13 02:03:37

+0

你最好是粘貼你的代碼,但我不確定誰會讀取1024行代碼:) – 2010-03-13 02:17:02

+5

文本圖片。這是第一次......或者是......顯然我還沒有活得夠久呢。 – 2010-03-13 02:56:10

回答

2

由於錯誤建議你可能有一個雙免費()堆損壞

編輯:要麼你正在釋放相同緩衝不止一次,或者你正在寫一個你不應該寫入的內存區域的字節。後者可能是由釋放緩衝區之後寫入緩衝區或寫入緩衝區邊界之外引起的。

也許Memcheck可以幫助查明問題。

與調試信息cc -g編譯程序並運行valgrind ./a.out

+0

所以基本上是因爲我釋放了更多次,我應該? – Mike 2010-03-13 01:59:52

+0

是的,你是。 :) – vladr 2010-03-13 03:10:37

+0

也可能是你正在寫的內存,你不應該寫信給。 – Gabe 2010-03-13 03:27:58