为什么这个C程序会崩溃?它汇编得很好

Mis*_* D. -2 c arrays

这个程序编译得很好.当我输入一个数字时,它会在我身上崩溃.name.exe has stopped working但为什么?

int main (void) {
    int arrayMax = 0;

    printf ("How many numbers will be entered?\n");
    scanf ("%i", arrayMax);

    int i;
    double userInput [arrayMax];

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Gop*_*opi 5

scanf ("%i", &arrayMax);
Run Code Online (Sandbox Code Playgroud)

这是使用扫描到地址&.您需要将要扫描值的变量的地址传递给.在这种情况下,您的变量是arrayMax,你需要通过这个变量其中的地址scanf()预计在这种情况下,你不这样做,并通过0,这是不是内存位置,你想你的扫描值,所以你看崩溃.写入无效的内存位置会导致崩溃.