[問題] 大矩陣的存取
開發平台(Platform): GCC, Linux
問題(Question):
我是新手... 有看過13戒和google但是還沒有找到答案
所以希望版上先進能夠給我些方向
我的問題是這樣:
因為需要大矩陣的計算,所以用malloc來要求記憶體
矩陣從硬碟讀入,A.mat 還有 B.mat
計算的結果也寫入硬碟,addTest.mat
下面附上的code在矩陣夠小的時候都還ok
但是維度過千之後就有問題了
在ubuntu底下的錯誤訊息是 Segmentation fault
用gdb的錯誤訊息是 "Program received signal SIGSEGV, Segmentation fault."
錯誤都發生在矩陣讀入的時候 readMatrix
gdb下逐行執行,在錯誤之前 print *matrix都回傳正確的值
(矩陣的第一個元素)
後來回傳的值就變成"Cannot access memory at address"
我的問題是... 到底是哪裡出錯阿
而這個錯誤又可以怎麼解決呢?
1000 by 1000 矩陣還只是測試階段就有這種問題...orz
懇請版上的高手們救救我@@
餵入的資料(Input):
兩個矩陣的檔案 A.mat 和 B.mat
程式碼(Code):(請善用置底文網頁, 記得排版)
http://paste.plurk.com/show/405625/
補充說明(Supplement):
請不要鞭我的語法@@
其實我從來沒有用過malloc
還在學習中
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.234.211
※ 編輯: fuqule 來自: 114.32.234.211 (03/25 01:15)
→
03/25 01:29, , 1F
03/25 01:29, 1F
→
03/25 01:29, , 2F
03/25 01:29, 2F
→
03/25 01:41, , 3F
03/25 01:41, 3F
→
03/25 01:43, , 4F
03/25 01:43, 4F
推
03/25 01:49, , 5F
03/25 01:49, 5F
我猜問題是出在 readMatrix 的寫法有問題
因為 1000 by 1000 的矩陣資料 才不到 7MB
之前有測試過用同樣的函數宣告大矩陣,資料大小到2~3GB都沒問題
※ 編輯: fuqule 來自: 114.32.234.211 (03/25 01:53)
→
03/25 01:58, , 6F
03/25 01:58, 6F
→
03/25 01:58, , 7F
03/25 01:58, 7F
→
03/25 01:59, , 8F
03/25 01:59, 8F
→
03/25 01:59, , 9F
03/25 01:59, 9F
→
03/25 02:02, , 10F
03/25 02:02, 10F
→
03/25 02:03, , 11F
03/25 02:03, 11F
→
03/25 02:03, , 12F
03/25 02:03, 12F
→
03/25 02:04, , 13F
03/25 02:04, 13F
→
03/25 02:05, , 14F
03/25 02:05, 14F
→
03/25 02:06, , 15F
03/25 02:06, 15F
→
03/25 02:08, , 16F
03/25 02:08, 16F
→
03/25 02:08, , 17F
03/25 02:08, 17F
→
03/25 02:11, , 18F
03/25 02:11, 18F
→
03/25 02:12, , 19F
03/25 02:12, 19F
→
03/25 02:13, , 20F
03/25 02:13, 20F
→
03/25 02:16, , 21F
03/25 02:16, 21F
→
03/25 02:16, , 22F
03/25 02:16, 22F
推
03/25 02:17, , 23F
03/25 02:17, 23F
因為還在測試,所以 A.mat 和 B.mat 是每個元素都是rand的矩陣
是用下面的程式碼造的
http://paste.plurk.com/show/405717
※ 編輯: fuqule 來自: 114.32.234.211 (03/25 02:23)
推
03/25 02:33, , 24F
03/25 02:33, 24F
→
03/25 02:40, , 25F
03/25 02:40, 25F
→
03/25 02:41, , 26F
03/25 02:41, 26F
終於找到問題來補PO一下
其實問題說到底是因為我是菜鳥XD
想要分開編譯但是又沒有正確的header file格式
最後老老實實的把每個檔案(還有header file)
的include libaries寫好就沒有問題了
再次感謝 a大 和 p大 的大力幫忙!
※ 編輯: fuqule 來自: 114.32.234.211 (03/25 02:58)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章