iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

少年DevOps的C++奇怪漂流系列 第 13

Day13-stack

function stack,stack 是一種資料結構屬於後進先出,如下圖記體體空間簡單的來說第一塊擺全域變數靜態變數與程式碼,第二塊Heap擺動態變數,第三塊stack擺程式呼叫,一開始計算機會先執行main()接著創造新Foo物件*f 再呼叫Foo的成員方法setValue()將成員屬性m_value設為g_default_value,接著stack會按著程式呼叫順序的反方向回收記憶體,先回收f->setVaue()再回收main(),然後C++是沒有GC的語言一般的函式參數因為default keyword is auto所以隨著函示結束也會跟著回收,但物件Foo不是main函式的參數所以要主動回收delete f。

https://ithelp.ithome.com.tw/upload/images/20210925/200988863S4Mc1oRTh.png


上一篇
Day12
下一篇
Day14
系列文
少年DevOps的C++奇怪漂流30

尚未有邦友留言

立即登入留言