では、2004.04.14付「Cの行列式計算(allocaでの実装)」で示したソースコードをコンパイルし、実行してみよう。
20:56:28 result: 489261678 20:56:36 result: 489261678 20:56:44 result: 489261678 20:56:48 result: 489261678 20:56:52 result: 489261678 20:56:56
最適化無しで約8秒、最適化有りだと約4秒という結果になった。
gcc拡張の可変長配列に比べると、allocaでの実装の方が最適化した場合にやや速くなっているが、これは誤差の範囲かも知れない。
ということで、gcc拡張の可変長配列はスタック領域に確保されているのだろうというkp氏の推測はほぼ間違いないと結論してよいと思う。
ただ、gcc拡張の可変長配列にしても、allocaにしても、その実装については処理系に依存するようであるので、どのプラットフォームでも同様な結果になるとは限らないという事情はあるらしい。それは念頭においておくべきかも知れない。