alloca() 不具可移植性, 而且在沒有傳統堆棧的機器上很難實現。 當它的返回值直接傳入另一個函數時會帶來問題, 如 fgets(alloca(100), 100, stdin)。
由於這些原因, alloca() 不合標準, 不宜使用在必須廣泛移植的程序中, 不管它可能多麼有用。 既然 C99 支持變長數組(VLA), 它可以用來更好的 完成 alloca() 以前的任務。
參見問題 7.19。
參考資料: [Rationale, Sec. 4.10.3]。
翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)