释放指针指向空间出错,求指教
程序代码:#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int order;
int bianhao;
struct node *link;
}Node,*L;
main()
{
int B[]={3,1,7,2,4,8,4};
L h, p, q;
int i,m=4,n=7;
p=h=(L)malloc(sizeof(L));
h->order=1;
h->bianhao=B[0];
h->link=NULL;
p=h;
for(i=1;i<n;i++)
{
p=p->link=(L)malloc(sizeof(L));
p->order=i+1;
p->bianhao=B[i];
p->link=NULL;
}
p->link=h;
while(n--)
{
q=p;
for(i=0;i<m;i++)
{
p=q;
q=p->link;
}
p->link=q->link;
m=q->bianhao;
printf("%4d",q->order);
//free(q); /*这一行,注释掉没问题,不注释掉就会报错,这是为什么?*/
}
}这段代码是用来演示约瑟夫环的。









