開發平台(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裡面卻不用釋放記憶體呢?
先謝謝回答了