[問題] 請問函式的引數若為另一函式,是否就不會適放記億體?
舉例來說吧, A與B皆為matrix,今做下面的計算:
A*(B**t) (A矩陣與B矩陣的轉置做相乘 )
假設AB皆為方陣 寫成程式可為 Mul( n, A,transpose(n,B) )
double **transpose(int n,double **M)
{
double **Mt;
/*allocate Mt memory*/
/*compute Mt = M**t */
return Mt;
}/*transpose*/
double **Mul(int n, double **M1, double **M2)
{
double **C;
/*allocate C memory*/
/*compute C = M1*M2 */
return C;
}/*Mul*/
所以在原本的程式 Mul( n, A,transpose(n,B) )中
其實transpose(n,B) 就是Mt
我想問的是,那這樣Mt被宣告後就沒有機會free memory,
那請問這樣complier會自動free嗎?
若不會,那有什麼方法以手動方式適放 Mt所佔住的記譯體呢?
(當然是假設不在Mul內部適放M2的記憶體)
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.74.111
→
05/28 05:30, , 1F
05/28 05:30, 1F
推
05/28 09:01, , 2F
05/28 09:01, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章