以下のように関数fooを呼び出して2次元配列を宣言し、
pに格納しようとしたのですが、コンパイルは通るものの
実行時にエラーが出てしまいます。どのように修正したら良いでしょうか。
よろしくお願いします。

int **foo(int a, int b);

main(void){

int **p;
p = foo(2, 4);
}

int **foo(int a, int b){

int **array = malloc(sizeof(int)*(a*b));
  return array;
}