看板 C_and_CPP 關於我們 聯絡資訊
舉例來說吧, 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
james732:autoptr可以解決這種問題嗎...? 05/28 05:30
littleshan:不行 05/28 09:01