[問題] 記憶體管理

看板C_and_CPP作者 (墨心鏡情)時間9年前 (2014/09/21 22:03), 9年前編輯推噓3(308)
留言11則, 5人參與, 最新討論串1/1
各位版友大家好, 我是個學習C的新手,是統計背景(較理論)出身的。 之前的都是用統計R軟體寫程式, 但是因為現在老闆希望我可以把一些R程式轉譯成C, 所以還在學習中。 手邊買了一本洪維恩的"C語言教學手冊"邊看邊動手寫 但是目前卡關了 就是我的程式用Mac的Xcode跑,會出現有關記憶體出錯的訊息。 拿訊息去喂狗後,大該了解好像是說我把一個已經釋放過的記憶體又拿來操作。 後來改用Windows的Dev C++跑卻沒有錯誤訊息,但是結果都是錯的。 我在想是不是因為記憶體管理方面有問題? 想請問大家有沒有推薦適合新手的, 有關記憶體方面或資料結構的書可以讀? 附上我的程式碼:http://ideone.com/B7OiEY 程式寫的很粗糙,請見諒。 問題出在第162行有個函數addcol() 在main()裡面執行時,當我只呼叫addcol()一次是沒問題的 在Xcode裡不允許我跑兩次以上。 在Dev C++裡可以跑兩次結果沒問題,但是第三次會錯, 如果用for迴圈去跑更是直接全錯。 完全不知道該怎麼辦,只好來懇請各位大大幫忙。 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.45.110 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1411308223.A.DE8.html ※ 編輯: lianhua (140.115.45.110), 09/21/2014 22:04:31

09/21 22:11, , 1F
C#? C?
09/21 22:11, 1F

09/21 22:14, , 2F
是 C 我打錯了 改一下
09/21 22:14, 2F
※ 編輯: lianhua (140.115.45.110), 09/21/2014 22:14:35 ※ 編輯: lianhua (140.115.45.110), 09/21/2014 22:19:14

09/21 23:00, , 3F
我比較懷疑,他的編譯的過嗎?? 應該不可能吧
09/21 23:00, 3F

09/22 01:29, , 4F
程式第211行的vec_old應該要改為vec_old[i]
09/22 01:29, 4F

09/22 01:30, , 5F
所以第210行到212行要用大括號包起來
09/22 01:30, 5F

09/22 01:31, , 6F
另外程式輸出是否為6 12 5 10 9 4 6 7
09/22 01:31, 6F

09/26 13:55, , 7F
這本書可以幫助你 http://books.gotop.com.tw/o_A387
09/26 13:55, 7F

09/26 13:57, , 8F
書不厚,寫的也淺顯易懂,讀懂了C就是你的了。
09/26 13:57, 8F

09/26 13:58, , 9F
剩下的就是多看其他人寫的程式碼
09/26 13:58, 9F

09/26 14:24, , 10F
第197行函式傳兩個m很怪,所以126的for永不會執行
09/26 14:24, 10F

09/26 14:26, , 11F
關鍵在129行,陣列寫出界了,所以crash
09/26 14:26, 11F
文章代碼(AID): #1K7jg_te (C_and_CPP)