Re: [問題] 回傳local變數
※ 引述《justinC (無)》之銘言:
: int [][] tran()
: {
: int [][]new1=new int [colSize][rowSize];
^^^^^^^^ ^^^^^^^
陣列又是 new, 就算在 C/C++ 中也不可能會清除內容的
會被清除的只有建立在 stack 中的資料
new1 會被清除,new1 的內容可不會,兩者不可混為一談
: for(int i=0;i<rowSize;++i)
: for(int j=0;j<colSize;++j)
: new1[j][i]=array[i][j];
: return new1;
: }
: 我在class的method寫一個轉置矩陣
: 最後回傳的是tran內宣告的new1二維
: 但是在main印出new1卻有值...
: 難道說離開function值沒有被馬上清掉?
: 不知道java在處理local變數怎麼處理
local variable 永遠會被清掉,不然怎麼叫 local?
你在 Java 中可沒辦法寫:return &new1; 啊
根本不可能抓到被清除的內容
我想你需要釐清動態記憶體配置的相關觀念
--
By Gamers, For Gamers - from the past Interplay
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.87.125
討論串 (同標題文章)