C链表添加节点错误
自己写的小程序,基本代码如下:
struct stu{
unsigned int age;
int score;
char *name;
struct stu *next;
};
struct stu *add_node(struct stu *list,struct stu node){
struct stu *head=list;
struct stu *p=list;
while(p->next!=NULL)
p=p->next;
p->next=(struct stu *)&node;
node.next=NULL;
return head;
}
void main(void)
{
struct stu node={11,22,"jack"};
struct stu *list,*p,*q;
list=初始化化函数,这里就没有贴出来;
list=add_node(list,node);
p=list;
for(q=p;q!=NULL;q=q->next){
printf("age:\t %d\t",q->age);
printf("score:\t %d\t",q->score);
printf("name:\t %s\n",q->name);
}
}
打印出来的结果,初始化的都正确,但是新增加的节点显示结果如下:
age: 138211520 score: 22 name: jack
请问age怎么会那么大啊,node没有给最后一个节点正确赋值啊。
[解决办法]