上のプログラムで
myalloc関数内の

*p1=malloc(20);

の部分で

p1=malloc(20);
でダメなのはなんででしょうか??

p1に*p1の値(アドレス)が入ってるのでアスタリスクをつける意味を
考えて混乱してきました。
よろしくお願いします。