能帮我看个运行错误吗?
我在用VC6。0编时编译连接都通过了,运行时遇到问题,当输入第二个数后,程序就终止了。(用链表排序)Microsoft Visual Studio Debugger
An exception occurred. Process well be terminated.(Exception address is 004206E9)
点击“调式”出现下面这段话:
"0x00401948"指令引用的"0xcdcdcdd5"内存.该内存不能为"read".
请问可能是哪里出错啊?我实在找不到出错的地方。。。
谢谢!
#include <iostream>
using namespace std;
struct Node
{
double content;
Node *next;
};
int main()
{
Node *head=NULL;//创建新链表;
Node *p=new Node;
cout<<"请输入要排序的数,以-1结束:"<<endl;
cin>>p->content;//输入第一个数;
head=p;
p->next=NULL;
delete p;
p=NULL;
Node *q=new Node;
cin>>q->content;
while (q->content!=-1)
{ bool change=false;
Node *x=head;
if (x->content>q->content)//看新输入的数是否应该安排在第一个结点;
{ q->next=x->next;
head=q;
change=true;
}
else//新输入的数插在当中;
{ x=x->next;
for (;x->next!=NULL;x=x->next)
if (q->content > x->content)
{ q->next=x->next;
x->next=q;
change=true;
break;
}
}
if (!change)//新输入的数插在最后;
{ x->next=q;
q->next=NULL;
}
delete q;
q=NULL;
Node *q=new Node;
cin>>q->content;
}
Node *s=new Node;
int count=0;
for (s=head;s->next!=NULL;s=s->next)//输出;
{ cout<<s->content<<'\t';
count++;
if (count%6==0)
cout<<endl;
}
cout<<endl;
return 0;
}