이게 왜 gcc에서는 되고 VS.net에서는 안될까요?

#include <stdio.h> 
 
int main() 
{ 
int n; 
printf("Array Size? "); 
scanf("%d", &n); 
int x[n]; 
 
int i; 
for (i = 0; i < n; i++) { 
x[i] = i * 10; 
printf("%d ", x[i]); 
} 
 
printf("\n"); 
return 0; 
} 

gcc 에서 되는 걸로 봐선 표준인거 같기는한데..

VS.net 에서는 왜 이런식으로 배열 할당이 안될까요?

VS.net 은 비표준 컴파일러인가요 ㅡ,ㅡ;;

아니면 혹시 C++ 이라서? ;;