Re: [問題] 二維陣列記憶體配置及回收

看板C_and_CPP作者 (傻傻)時間16年前 (2009/11/10 14:30), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串6/6 (看更多)
※ 引述《kyokb (傻傻)》之銘言: : ※ 引述《littleshan (我要加入劍道社!)》之銘言: : : 上面這行讓 REC_FAR[i] 指向一塊 new 得到的記憶體空間 : : 然後這行讓 REC_FAR[i] 指向另一塊空字串 : : 本來由 new 得到的記憶體就 leak 了 : : 這邊你 delete 掉的並不是 new 得到的記憶體 : : 而是空字串 : : 因此造成錯誤 : : 所以你的問題出在 : : 你用等號只會複製字串的位址 而不是複製字串的內容 : : 在 C++ 中建議改用 string 來存字串 : : 寫起來也比較簡單 : 在請教各位一個問題,我把class atdf_header宣告成全域變數提供給多個函式使用時 : 在解構的時候也出像類似問題耶,這該如何解決? sorry,沒把問題描述清楚! 我的問題是如果宣告一個全域的class 在程式關閉時會在解構時delete [] REC_FAR[i]這裡出現問題 這是否代表這個class只能當作區域變數來用? 小弟知道解構的動作會在離開{}時發生,所以目前是不是除了修改class的constructor 跟destructor內容外有無其他方法可以解決? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.210.112.66

11/10 17:31, , 1F
沒看 code,很可能是其它地方造成的問題
11/10 17:31, 1F

11/10 17:32, , 2F
比如說不小心 assign 其它內容到 REC 裡面
11/10 17:32, 2F
文章代碼(AID): #1A-GYZc8 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1A-GYZc8 (C_and_CPP)