为什么结果也能出来但会跳出个对话框显示此程序已停止工作?
#include<stdio.h>#include<malloc.h>
#define error -1
typedef struct lnode{
int seat;
int code;
struct lnode *next;
}lnode,*linklist;
linklist createlist(linklist &l,int a[])
{
linklist p,r;
int i;
l=(linklist)malloc(sizeof(lnode));
l->seat=1;
l->code=a[0];
l->next=l;r=l;
for(i=1;i<=6;i++)
{
p=(linklist)malloc(sizeof(lnode));
p->seat=i+1;
p->code=a[i];
r->next=p;
r=p;
p->next=l;
}
return l;
}
void listdelete(linklist &l,int x)
{
linklist p,q;
int i;
p=l;
while(p){
for(i=1;i<x-1;i++)
p=p->next;
printf("%d",p->next->seat);
putchar(' ');
x=p->next->code;
q=p->next;
p->next=q->next;
free(q);
p=p->next;
}
}
int main()
{
linklist head;
int a[7]={3,1,7,2,4,8,4};
int m;
printf("input an limit number\n");
scanf("%d",&m);
head=createlist(head,a);
listdelete(head,m);
return 0;
}
为什么结果也能出来但会跳出个对话框显示此程序已停止工作?