关于C语言建立动态链表的问题。在线等。急急急!!!

#include"stdio.h"#include"stdlib.h"#include"string.h"structstudent{intnum;charname[20... #include "stdio.h"
#include "stdlib.h"
#include "string.h"
struct student
{
int num;
char name[20];
int age;
struct student *next;
};
typedef struct student st;
st * create()
{
int i;
st *head,*p;
head=p=(st *)malloc(sizeof(st));
scanf("%d%s%d",&(p->num),p->name,&(p->age));
for(i=0;i<4;i++)
{
p->next=(st *)malloc(sizeof(st));
p=p->next;
scanf("%d%s%d",&(p->num),p->name,&(p->age));
}
p->next=NULL;
return head;
}
print(st *head)
{
while(head!=NULL)
{
printf("\n%d %s %d",head->num,head->name,head->age);
head=head->next;
}
}
main()
{
st *head;
head=create();
print(head);
getch();
}
就是一开始开辟的P1 和P2。。那P2对的那快结构体的地址里面不是就没有保存数据了么?
展开
 我来答
xkken
2010-12-27 · 超过25用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:0
展开全部
st * create()
{
int i;
st *head,*p, *node;
head=p=(st *)malloc(sizeof(st));
if( head != NULL )
{
scanf("%d%s%d",&(head->num),head->name,&(head->age));
head->next = NULL;
}
p = head;

for(i=0;i<4;i++)
{
node=(st*)malloc(sizeof(st));
if( node != NULL )
{
scanf("%d%s%d",&(node->num),node->name,&(node->age));
node->next = NULL;

p->next = node;
p = node;
}
}
return head;
}

在循环里面每次创建一个新节点,用一个指针来把他们串连起来。你把这个方法替换,然后调试下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式