배열의 크기는 컴파일시 정해지기에 동적크기의 배열을 선언하려면
int size;
scanf("%d", &size);
int* arr = (int*)malloc(sizeof(int) * size);
이렇게 하라고 배웠는데 아래와 같이 코딩해도 문제없이 돌아갑니다. (c, cpp )
int size;
scanf("%d",&size);
int arr[size];
컴파일시 배열의 크기가 정해지지 않는데도 문제 없이 프로그램이 돌아가는 이유와, 저것이 된다면 이런 경우에서 굳이 malloc과 같은 동적할당을 사용하지 않고 아래처럼 코딩하는 습관을 가져도 문제가 없을지 , 그리고 혹시 c와 cpp에서의 차이점이 있다면 알고싶습니다.