棧:程序每調用一個函數后,建立一個新的棧幀保存當前調用函數的所有局部變量,也就是說每個函數里面的變量都是在這個函數的棧幀內,
堆:程序運行過程中,向操作系統(tǒng)(OS)申請的系統(tǒng)內存(Mem),系統(tǒng)返回堆空間的地址。
棧幀:變量的所在地 ,變量可直接存取數值
堆:向系統(tǒng)申請的內存空間,通過函數內的指針變量,賦值指針申請內存返回的地址,用于存取堆空間里的數據
不同之處:
棧幀在函數結束時會自動釋放,
堆則需要主動申請釋放,或者等程序運行結束。
操作系統(tǒng)會自動釋放程序運行期間申請的內存空間。
詳細請看操作系統(tǒng)原理,編譯原理,或者反匯編原理。
老師講的沒有錯,只不過沒基礎的會懵。
若有錯誤請指出。滿字