[問題] 記憶體管理

作者: lianhua (墨心鏡情)   2014-09-21 22:03:39
各位版友大家好,
我是個學習C的新手,是統計背景(較理論)出身的。
之前的都是用統計R軟體寫程式,
但是因為現在老闆希望我可以把一些R程式轉譯成C,
所以還在學習中。
手邊買了一本洪維恩的"C語言教學手冊"邊看邊動手寫
但是目前卡關了
就是我的程式用Mac的Xcode跑,會出現有關記憶體出錯的訊息。
拿訊息去喂狗後,大該了解好像是說我把一個已經釋放過的記憶體又拿來操作。
後來改用Windows的Dev C++跑卻沒有錯誤訊息,但是結果都是錯的。
我在想是不是因為記憶體管理方面有問題?
想請問大家有沒有推薦適合新手的,
有關記憶體方面或資料結構的書可以讀?
附上我的程式碼:http://ideone.com/B7OiEY
程式寫的很粗糙,請見諒。
問題出在第162行有個函數addcol()
在main()裡面執行時,當我只呼叫addcol()一次是沒問題的
在Xcode裡不允許我跑兩次以上。
在Dev C++裡可以跑兩次結果沒問題,但是第三次會錯,
如果用for迴圈去跑更是直接全錯。
完全不知道該怎麼辦,只好來懇請各位大大幫忙。
感謝~
作者: fireslayer (fireslayer)   2014-09-21 22:11:00
C#? C?
作者: lianhua (墨心鏡情)   2014-09-21 22:14:00
是 C 我打錯了 改一下
作者: xpride (陳ㄚ智)   2014-09-21 23:00:00
我比較懷疑,他的編譯的過嗎?? 應該不可能吧
作者: rehon   2014-09-22 01:29:00
程式第211行的vec_old應該要改為vec_old[i]所以第210行到212行要用大括號包起來另外程式輸出是否為6 12 5 10 9 4 6 7
作者: ironshi (Ironman)   2014-09-26 13:55:00
這本書可以幫助你 http://books.gotop.com.tw/o_A387書不厚,寫的也淺顯易懂,讀懂了C就是你的了。剩下的就是多看其他人寫的程式碼第197行函式傳兩個m很怪,所以126的for永不會執行關鍵在129行,陣列寫出界了,所以crash

Links booklink

Contact Us: admin [ a t ] ucptt.com