作者adrianshum (Alien)
看板java
标题Re: [问题] 回传local变数
时间Wed Nov 22 14:57:45 2006
※ 引述《justinC (无)》之铭言:
: ※ 引述《godfat (godfat 真常)》之铭言:
: : ^^^^^^^^ ^^^^^^^
: : 阵列又是 new, 就算在 C/C++ 中也不可能会清除内容的
: : 会被清除的只有建立在 stack 中的资料
: : new1 会被清除,new1 的内容可不会,两者不可混为一谈
: 原来如此。一时没察觉是用new~
: 有gc真方便..
: 不知道life time的问题...gc会决定.....?我乱猜的...
: : local variable 永远会被清掉,不然怎麽叫 local?
: : 你在 Java 中可没办法写:return &new1; 啊
: : 根本不可能抓到被清除的内容
: : 我想你需要厘清动态记忆体配置的相关观念
: 不知道java回传阵列是怎麽处理
: 是只会回传referencec还是会自动会将阵列copy一份过去
: 对java不熟...临时要写才发现java处理机制不了的一堆
这方面, 把 java 的 reference-type variable
(非 primitive type) 想成是 pointer 就好了
简化一点:
class TwoDimensionArray {
...
}
....
TwoDimensionArray* tran() {
TwoDimensionArray* myArray = new TwoDimensionArray(x,y);
//...
return myArray;
}
除了不用再理会 delete 的时机, 其实情况就和上
面的 psuedo-C++ code 差不多
Alien
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.72.0.45