Re: [問題] 回傳local變數
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 10 篇):