c駆け出しの者ですが、質問です。
#include <stdio.h>
typedef struct { char name[20];
int age;
           }data,*pdata;
voidinput(pdata p,char*,int);

int main()
{
data _data[1];
pdata _pdata;

_pdata=_data;

input(_pdata,"ポコたん",19);

printf("%s %d\n",data[0].name,data[0].age);

return 0;
}
void input(pdata p,char *nm,int a)
{
strcpy(p->name,nm);
p->age=19;
}
この場合なぜ関数INPUT内で nmをp->nameにコピーすることで
名前 ポコたん がname[20]の中に入るのか分からないのです
また、どうしてcharのポインタで呼び込まないといけないのでしょうか
普通にchar nameではなぜエラーになるのか
どなたか教えてもらえないでしょうか。