在調用 alloca() 的函數返回的時候, 它分配的內存會自動釋放。也就是說, 用 alloca 分配的內存在某種程度上局部於函數的 ``堆棧幀" 或上下文中。
alloca() 不具可移植性, 而且在沒有傳統堆棧的機器上很難實現。 當它的返回值直接傳入另一個函數時會帶來問題, 如 fgets(alloca(100), 100, stdin)。
由於這些原因, alloca() 不合標准, 不宜使用在必須廣泛移植的程序中, 不管它可能多么有用。 既然 C99 支持變長數組(VLA), 它可以用來更好的 完成 alloca() 以前的任務。