程序运行时内存为不可“read”,请问如何解决
在调试程序时,出现黑色对话框后,在输入文件名后,出现了一个应用程序错误对话框说该内存不能“read”,然后在debug调试中箭头指向了以下函数中的while那句,请问怎么改呢? 是否是析放链表程序编写不正确?请求高手指点! void freeH1(struct H1 *H1header)
{
struct H1 *p;
struct H1 *q;
p=H1header;
while(p->next!=NUL)
{
q=p->next;
p->next=q->next;
free(q);
}
free(H1header);
}
----------------解决方案--------------------------------------------------------
看样子LZ是想释放链表。
这样既可
p=head;
current=p;
while(current!=NULL)
{
p=current->next;
free(current);
current=p;
}
----------------解决方案--------------------------------------------------------
这样可以不?
q=p
while(p->next!=NUL)
{
p=p->next
q->next=p->next;
free(p);
}
----------------解决方案--------------------------------------------------------
谢谢楼上的答复,我试试看
----------------解决方案--------------------------------------------------------