看板 C_and_CPP 關於我們 聯絡資訊
程式碼: http://codepad.org/NDTAuevU MATRIX MATRIX::operator+(const MATRIX &B) const { MATRIX sum(m,n); ......(略,把加起來的值一一填入sum的data裡面) (data在constructor中就會配置記憶體) retrun sum; } 呼叫的方法如下: MATRIX A(2,3), B(2,3), C(2,3); ... ..(填值,略過) C=A+B; 但這樣印C出來卻有亂碼 覺得應該是離開operator+後 sum的data的記憶體配置也被清掉... 不知道有沒有什麼解決方法呢? --
xxxx :老闆都不懂.. ( ′-`)y-~
ooooooooo :這裡禁煙喔XDDDD
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.125.213
firejox:你的賦值有寫錯嗎? 04/09 23:33
賦值是說填值的地方嗎? 如果是的話,我有在加的過程中印出來過(存進去後再印) 是沒有錯的 但離開operator+就錯了 ※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:34) ※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:35)
james732:以這段來看,應該不是sum被釋放的問題 04/09 23:37
附上程式碼: http://codepad.org/NDTAuevU ※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:40)
james732:你有寫 operator= 嗎? 04/09 23:40
還沒有寫 ※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:41)
james732:看起來是沒有寫operator=,請補上去,做該做的事吧 04/09 23:41
有寫的在這: http://codepad.org/NJB0hMeJ 不過在operator=裡面 跑到 set_data(B.get_data()); 程式就會掛掉 有跑進去set_data(),但檢查_data不是NULL,進到for迴圈要給值就死掉了 ※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:44)
firejox:你沒給初始的空間呀 04/10 00:09
firejox:初始宣告的指標不是零 04/10 00:09