作者kyokb (傻傻)
看板C_and_CPP
标题Re: [问题] 二维阵列记忆体配置及回收
时间Tue Nov 10 14:30:57 2009
※ 引述《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
1F:推 littleshan:没看 code,很可能是其它地方造成的问题 11/10 17:31
2F:→ littleshan:比如说不小心 assign 其它内容到 REC 里面 11/10 17:32