堆栈内存是在运行时还是编译时分配的?

use*_*767 8 c stack-memory

堆栈是在运行时还是编译时分配的?
例:

void main()
{
    int x;
    scanf("%d", &x);
    int arr[x];
}
Run Code Online (Sandbox Code Playgroud)

das*_*ght 7

堆栈在运行时分配 ; 但是,每个堆栈帧的布局在编译时决定,但可变大小的数组除外.