[問題] 有關malloc跟一般變數宣告的差別
開發平台(Platform): (Ex: Win10, Linux, ...)
linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無吧(?
問題(Question):
各位好
我想要問一下
若在一般function宣告變數的話(e.q. int a=0;)
我知道隨著function結束執行return後 變數的記憶體也就會被釋放了
但若是在main裡面宣告的話
此變數不就會一直保留著他的記憶體
而要等到程式結束後他才會被清空嗎?
但為什麼一般都沒有設計清空在main裡面宣告變數記憶體的機制呢?
但malloc卻一定要強調要用free來清空呢?
malloc宣告的變數不也會隨著程式結束後就被清空了嗎?
為什麼要強調一定要用free呢?
我知道在其他function定義的malloc一定要用free不然會有memory leak
但在main裡面宣告的malloc的變數都要強調要用free
為什麼int a=0;在main裡面卻不用釋放記憶體呢?
先謝謝回答了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.115.107
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1478860252.A.6B3.html
→
11/11 18:34, , 1F
11/11 18:34, 1F
→
11/11 18:37, , 2F
11/11 18:37, 2F
→
11/11 18:37, , 3F
11/11 18:37, 3F
→
11/11 18:39, , 4F
11/11 18:39, 4F
→
11/11 18:40, , 5F
11/11 18:40, 5F
→
11/11 18:40, , 6F
11/11 18:40, 6F
推
11/11 18:41, , 7F
11/11 18:41, 7F
→
11/11 18:41, , 8F
11/11 18:41, 8F
→
11/11 18:41, , 9F
11/11 18:41, 9F
→
11/11 18:43, , 10F
11/11 18:43, 10F
不好意思在請問一下@@
為什麼會在runtime才決定如何釋放呢?
我知道malloc是在runtime才分配記憶體給他
且int a=0;跟malloc在main裡面都一樣佔有記憶體
但為何不用在意int a=0;所佔的記憶體空間
而malloc會一定要強調用free呢?
不是程式結束後就自動free掉此程式所用的記憶體空間了嗎?
→
11/11 18:43, , 11F
11/11 18:43, 11F
→
11/11 18:43, , 12F
11/11 18:43, 12F
我知道有那網站 只是英文不好不知道關建字怎麼下
試了好幾次都查不到我想找的答案才來這裡發問
但我並不是完全沒想過直接問問問題的
若這樣還不能在這發問不是很奇怪嗎?
→
11/11 18:44, , 13F
11/11 18:44, 13F
※ 編輯: youtuuube000 (36.233.115.107), 11/11/2016 19:23:03
推
11/11 19:35, , 14F
11/11 19:35, 14F
→
11/11 19:35, , 15F
11/11 19:35, 15F
→
11/11 19:35, , 16F
11/11 19:35, 16F
→
11/11 19:35, , 17F
11/11 19:35, 17F
→
11/11 19:37, , 18F
11/11 19:37, 18F
→
11/11 19:37, , 19F
11/11 19:37, 19F
→
11/11 19:37, , 20F
11/11 19:37, 20F
→
11/11 19:39, , 21F
11/11 19:39, 21F
→
11/11 19:39, , 22F
11/11 19:39, 22F
→
11/11 19:40, , 23F
11/11 19:40, 23F
推
11/11 19:52, , 24F
11/11 19:52, 24F
→
11/11 19:52, , 25F
11/11 19:52, 25F
→
11/11 19:52, , 26F
11/11 19:52, 26F
→
11/11 19:52, , 27F
11/11 19:52, 27F
我大概懂了 謝謝你!
※ 編輯: youtuuube000 (36.233.115.107), 11/11/2016 20:00:59
→
11/11 20:29, , 28F
11/11 20:29, 28F
推
11/12 01:54, , 29F
11/12 01:54, 29F
→
11/12 04:54, , 30F
11/12 04:54, 30F
→
11/12 04:54, , 31F
11/12 04:54, 31F
→
11/12 04:55, , 32F
11/12 04:55, 32F
推
11/12 16:10, , 33F
11/12 16:10, 33F
→
11/12 16:10, , 34F
11/12 16:10, 34F
→
11/13 07:05, , 35F
11/13 07:05, 35F
推
11/15 10:07, , 36F
11/15 10:07, 36F
→
11/15 10:07, , 37F
11/15 10:07, 37F
→
11/15 10:07, , 38F
11/15 10:07, 38F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章