ポインタでわからなくなりました。

int func(int *x)
{
x = (int *)malloc(100);
return 0;
}

int main()
{
int *x = NULL;
func(x);
return 0;
}

funcでメモリ確保して、ポインタを引数で返したいのですが、
上だとうまくいきません。
どうやったらいいのでしょうか?