allocaはどうやってスタックからメモリを確保するのか?
How do functions like alloca allocate memory from the stack?
Raymond Chenが、alloca()がスタックからメモリを確保する仕組みを解説。_alloca()はローカルフレーム作成時と同じ__chkstk()関数を呼び出し、スタックプローブを行うことでガードページを飛び越えないようにしている。x86-64のアセンブリ例を示し、alloca()が安全にスタックを拡張する仕組みを明らかにする。
_alloca()関数は、スタックポインタを調整する前に、同じ__chkstk()関数を呼び出してスタックをプローブします。