请大家帮我看下这个问题。
#include<stdio.h>
#include<stdlib.h>
#define N 20;
struct Link
{
int data;
struct Link *next;
};
int main(void)
{
struct Link *creatLink(void);
struct Link *Head;
Head = creatLink();
while (Head != NULL)
{
printf("%d ", Head->data);
Head = Head->next;
}
return(0);
}
struct Link *creatLink(void)
{
struct Link*head,*p,*q;
int n=N;
p=(struct Link*)malloc(sizeof(struct Link));
head=p;
while(n>0)
{
q=(struct Link*)malloc(sizeof(struct Link));
p->data=20-n;
p->next=q;
p=q;
n--;
}
p->next=NULL;
return(head);
}
这个链表没有封装好吗?
输出的时候末尾多了一个随机数,我觉得没有地方错啊,请大家帮我看下,谢谢。
[解决办法]
n=1的时候,q申请了空间,q的next指向了null,但q的data没有赋值