链表的输入问题,望指点

struct many
{
int xishu;
int mi;
many* next;
};

many* initll()
{
many* temp = new many;
temp->mi = 0;
temp->xishu = 0;
temp->next = NULL;
return temp;
}
void shuru(many* p)
{
int number;
many* temp = p->next;
cout << "请输入多项式的位数:";
cin >> number;
for (int i = 1; i <= number; i++)
{
cout << "请输入" << i << "位的系数:";
cin >> temp->xishu;
cout << "请输入" << i << "位的幂数:";
cin >> temp->mi;
temp = temp->next;
}
}
在shuru()中输入系数的cin >> temp->xishu;在这一步程序中断,应该怎么写才正确?

你还没有为该结构体分配内存,因此用了非法地址,肯定错啦