VS.NETと、前のバージョンのVC++6で確認したのですが、配列を宣言する際に
>定数式が必要です
>サイズが不明です
>サイズが0の配列を宣言しようとしました
というエラーが3個ずつ(計9個)出てしまいコンパイルが通りません。

#include <stdio.h>
#include <stdlib.h>

int r()
{
 return 30;
}

void func( int arg )
{
 int var = 20;

 int test1[ arg ];
 int test2[ var ];
 int test3[ r() ];
}

void main()
{
 func( 10 );
}

こんなコードです。本当にやりたいのは int test1[ arg ]; だけなんですが
そもそも変数や引数を添字にして配列を宣言することは不可能なんでしょうか