>alloca() 関数は、割り付けた領域の始まりを指すポインタを返す。
>割り付けによってスタックオーバーフローが起った場合の プログ
>ラムの動作は定義されていない。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/alloca.3.html

NULLなどの特殊な値がかえってくるわけではなく、成功失敗は
プログラムからは決定できないので、呼び出すのは一種のバクチ

>多くのシステムにおいて、関数コールの引き数のリスト内では
>alloca() が使えない。
>これは、 alloca() によって予約されるスタック領域が、
> 関数引き数に使われるスタック領域の中に現れてしまうためである。
>>784の言う通り
スタックポインタを操作する危険な関数で、仕様も素性もわからない
関数を標準ライブラリにあるからという理由で、気軽に「合成」して
使うと思わぬ落とし穴に嵌る可能性があるというお話