创建单链表问题 这段代码 我哪里出错了 谢谢各位看下

#include<stdio.h>#include<stdlib.h>structnode{intnum;structnode*next;};/*建立链表*/struct... #include <stdio.h>
#include <stdlib.h>

struct node
{
int num;
struct node *next;
};
/*建立链表*/
struct node *creat(int n)
{
int x, i;
struct node *head, *p, *r;

head=(struct node*)malloc(sizeof(struct node));
r=head;
printf("请输入数字\r\n");
for(i=0; i<n; i++)
{
scanf("%d", &x);
p=(struct node*)malloc(sizeof(struct node));
p->num=x;
r->next=p;
r=p;
}
r->next=NULL;
return(head);
}
/*输出*/
void output(struct node *head)
{
struct node *pt;
pt=head->next;
while(pt!=NULL)
{
printf("%d\r\n", pt->num);
pt=pt->next;
}
}

void main()
{
int n;
struct node *head;

printf("输入数字的个数n\r\n");
scanf("%d", &n);
head=creat(n);

printf("输入的数字\r\n");
output(head);
free(head);
}
展开
 我来答
gy1号
2011-09-18 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:94.1万
展开全部
你这程序是能运行的。如果一定要说有错,应该是内存泄露了。
你首先给head分配了内存。如果链表数大于1。你就调用了很多次p=(struct node*)malloc(sizeof(struct node));
但是最后你也只是释放了head的内存。

你上面说看下你的错误是指什么?程序是能运行的。
追问
虽然没有解决  但是还是谢谢了
我把for循环改为了while循环可以执行了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式