这个链表输出时为啥又是内存错误,到底是哪出了问题啊?求解。。。
#include <stdio.h>#include <stdlib.h>
#include "windows.h"
struct node
{
int num;
struct node *next;
};
int main()
{
struct node *p,*q,*head;
struct node node1;
p=q=(struct node *)malloc(sizeof(struct node));
printf("请输入链表:\n");
scanf("%d",&node1.num);
int n=0;
while(node1.num!=0)
{
n++;
if(n==1)
{
head=p;
p->next=NULL;
}
else
{
q->next=p;
}
q=p;
p=(struct node *)malloc(sizeof(struct node));
scanf("%d",&node1.num);
}
printf("按任意键输出链表!\n");
system("pause");
struct node *r;
r=head;
if(head!=NULL)
do
{
printf("%d\n",r->num);
r=r->next;
}
while(r->next!=NULL);
return 0;
}
[ 本帖最后由 木偶然 于 2011-6-16 21:59 编辑 ]