看板 C_and_CPP 關於我們 聯絡資訊
開發環境 : win10 / vs2019 c/c++ 疑問: 請問用alloca申請的stack RAM在函式返回後何時會被回收 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.139.150 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1568007982.A.9CC.html
wei115: alloca在函式返回後會被自動釋放八 09/09 15:08
Gway: 如果你問的是儲存local variable 的stack frame 確實是retur 09/09 16:30
Gway: n 就釋放 如果你問的是dynamic allocate 除非明確做free的 09/09 16:30
Gway: 動作 否則要等到程式執行結束 作業系統會幫忙回收 09/09 16:30
ando5566: Allocate是放heap , 沒有所謂alloc 在stack的事 09/09 22:35
LPH66: alloca 確實是放 stack 喔, 所以一樓正解 09/10 03:12
LPH66: 可以把它想像成跟該函數的區域變數一起消失 09/10 03:13
Gway: L大好神 我第一次看到這API xD 09/10 06:23
Bencrie: alloca 不在標準內,雖然很多平台都有 09/10 09:18
tinlans: alloca 看起來是函式,實際上是告訴編譯器多配置 stack 09/10 12:46
tinlans: 上多少空間的指示命令,編譯器在編譯期就能靜態算出要多 09/10 12:47
tinlans: 分配多大的空間給當前的 stack frame。 09/10 12:47
tinlans: 這單純是關係到函式進出點 stack pointer 跳多遠而已。 09/10 12:48
ando5566: 我也是第一次看 我以爲是allocate的縮寫 09/10 17:44
b0920075: 之前看到也以為作用在heap上...讓我找了好久 09/10 18:24
Killercat: 我以為這三兄弟malloc calloc alloca大家都耳熟能詳XD 09/10 21:09
Gway: 我以為三兄弟是malloc callow realloc? 09/10 21:13