最近、実行時に配列の次元が指定されている場合、そのようなプログラムは解釈できますが、コンパイルできないことをどこかで読みました。
この次の C++ コードのように
int m;
cin >> m;
int a[m];
Turbo C++ を使用してコンパイルしましたが、配列宣言に定数式が必要であるというエラーが表示されます。(予想)
しかしJavaの場合
int m;
Scanner input = new Scanner(System.in);
m = input.nextInt();
int[] a = new int[m];
エラーは発生しません。(コンパイルされていないと解釈されるためだと思います)
しかし、なぜこの違いがあるのですか?