In the below code,is the arr[n] is allocated from stack or heap?
I am confused since in general the array size is determined at compile time. How the below code working ?
#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    int arr[n];
    for(int arr_i = 0; arr_i < n; arr_i++){
       scanf("%d",&arr[arr_i]);
    }
    for(int arr_i = (n-1); arr_i >= 0; arr_i--){
       printf("%d ",arr[arr_i]);
    }
}
 
     
     
     
     
     
     
    