Re: [問題] 一個研究所考題
我來答看看, 請高手修正
※ 引述《peacecorner (說謊的沒海鷗)》之銘言:
: 1.一個程式在執行時,其data area 可分作兩部份:heap 與call stack,
: 請問call stack 與heap 各是做什麼用的
Heap 是給 global, static 變數放的地方, malloc (new) 出來的變數也是放這裏
call stack 是 local 變數放的地方, function 相關的 data (如參數) 也是
: 2.接續上題,請解釋function 的呼叫(與function call 的return)
: 與call stack 的“消長”(i.e., shrink and grow)有何關聯?
call 一個 function 就會需要一塊 stack 放置相關的 data.
return 時, release 這塊.
(不過, 我一直對 "return 的值" 是放在哪裏, 幾時會 release 一直不清楚, 有請高手)
: 小弟已經在網路查過了 但是沒有查到
: 我知道heap 與call stack分別是堆積與呼叫堆疊
: 也知道函式在呼叫的時候會將指令位址存入堆疊
: 等到return時再從堆疊取出
: 但是跟data area扯上關係我就不會解釋了
: 第一題不會 第二題就不知道怎麼解釋了
: 有沒有高手可以給小弟一個完整的答案呢??
: PS:這兩題不是作業,拜託高手回答一下
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.71.48
推
02/10 11:20, , 1F
02/10 11:20, 1F
→
02/10 11:21, , 2F
02/10 11:21, 2F
→
02/10 11:21, , 3F
02/10 11:21, 3F
→
02/10 11:22, , 4F
02/10 11:22, 4F
→
02/10 11:22, , 5F
02/10 11:22, 5F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章