#include <stdio.h>

void f(int **p){
int x[2]={1,2};
*p=x;
}

int main(void){
int *p;
f(&p);
printf("%d\n",p[0]+p[1]);
return 0;
}

上のプログラムの誤りを指摘せよという問題が出たのですが、
どこが間違っているのかよくわからないので教えてください。
おそらくp[0],p[1]のあたりが違うのだと思うんですが・・・