首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于链表的一点小先有关问题请问

2012-03-28 
关于链表的一点小先问题请教#includestdio.h#includemalloc.hstruct list{int datastruct list *next

关于链表的一点小先问题请教
#include<stdio.h>
#include<malloc.h>
struct list
{
int data;
struct list *next;
};
int main()
{
int value;
struct list *head;
head=(struct list *)malloc(sizeof (struct list));
struct list *p;
scanf("%d",&value);
head->data=value;
p=head->next;
while(scanf("%d",&value)&&value)
{
p->data=value; ///////////////这里有问题
p=p->next;
}
p->next=NULL;  return0;

}

当运行到标记那里时就出现了问题。. 可是我怎么都想不通为什么会不能运行..如果有内存详解更好。还望各位指教


[解决办法]
#include <stdio.h > 
#include <malloc.h > 
struct list 

int data; 
struct list *next; 
}; 
int main() 

int value; 
struct list *head; 
head=(struct list *)malloc(sizeof (struct list)); 
struct list *p; 
p=head;
scanf("%d",&value); 
head->data=value; 
 
while(scanf("%d",&value)&&value) 
{
p->next=(struct list*)malloc(sizeof(struct list));//必须分配内存,而且p->next必须链接上下一级结点!
p=p->next;
p->data=value;


p->next=NULL;
for(p=head;p!=NULL;p=p->next)
printf("%d ",p->data);
printf("\n");
return 0; 
}

热点排行