Could you explain to me why on earth this code terminates the process?

```
#include<cstdio>

int main(){
    int *wsk = new int[2];

    scanf("%d %d", wsk[0], wsk[1]); // relevant line

    delete [] wsk;
    wsk = new int[10];
    return 0;
}

```

Whereas this one does not:

```
#include<cstdio>

int main(){
    int *wsk = new int[2];

    scanf("%d %d", &wsk[0], &wsk[1]); // relevant line, mark the two '&'

    delete [] wsk;
    wsk = new int[10];
    return 0;
}

```