首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C链表添加节点异常

2012-09-20 
C链表添加节点错误自己写的小程序,基本代码如下:struct stu{unsigned int ageint scorechar *namestruc

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没有给最后一个节点正确赋值啊。

[解决办法]

探讨

引用:
这个是从头部插入节点的代码

#include <stdio.h>
#include <stdlib.h>

struct stu
{
unsigned int age;
int score;
char *name;
struct stu *next;
};

struct stu *init_list()
{
struct stu *p……

热点排行