[討論] 區域變數 與 malloc/free
最近在寫程式時突然想到一個關於變數宣告問題:
有一個 struct
struct _my_strut{ some variable };
還有個 function
void my_func(void){ do something }
現在我要在 my_func 裡宣告一個 struct my_struct
這邊我想到 2 個方法
1. 直接用區域變數宣告
struct _my_struct my_struct;
function 結束後記憶體會自動釋放
2. 用 malloc 後 free 掉
struct _my_struct *my_struct = malloc...
free(my_struct)
這兩個方法我覺得在使用上是等價的,
不知道有沒有本魯沒有想到的盲點
==============================================
剛剛突然想到一個重要的差異,return 的問題,
因為 區域變數 不能拿來 return
那除了 reutnr 的問題外,這兩個操作應該是等價吧!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.213.20
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1444988598.A.3E2.html
※ 編輯: CJacky (140.114.213.20), 10/16/2015 17:54:02
推
10/16 17:50, , 1F
10/16 17:50, 1F
→
10/16 17:54, , 2F
10/16 17:54, 2F
→
10/16 17:55, , 3F
10/16 17:55, 3F
→
10/16 17:56, , 4F
10/16 17:56, 4F
→
10/16 17:57, , 5F
10/16 17:57, 5F
→
10/16 17:57, , 6F
10/16 17:57, 6F
→
10/16 17:58, , 7F
10/16 17:58, 7F
→
10/16 18:00, , 8F
10/16 18:00, 8F
→
10/16 18:01, , 9F
10/16 18:01, 9F
→
10/16 18:02, , 10F
10/16 18:02, 10F
→
10/16 18:03, , 11F
10/16 18:03, 11F
推
10/16 18:03, , 12F
10/16 18:03, 12F
→
10/16 18:06, , 13F
10/16 18:06, 13F
推
10/16 23:18, , 14F
10/16 23:18, 14F
推
10/17 15:01, , 15F
10/17 15:01, 15F
→
10/17 15:03, , 16F
10/17 15:03, 16F