void foo(int n)
{
char s[n];
}

このコードがgcc 3.3.2で問題なく通るんですが、
なんで配列を定義するときの要素数に変数が使えるんですか?
bcc 5.5ではコンパイルエラーになりましたが。