刚开始学C++ 求教个问题..代码如下#include <iostream>
using namespace std;struct Node{
int content;
Node *next;
};bool remove(Node *&h,int &a,int pos)
{
if (pos == 1)
{
Node *p=h;
h=h->next;
a=p->content;
delete p;
p=NULL;
return true;
}
else
{
Node *p=h;
int j=1;
while (j < pos-1)
{
if (p->next == NULL)
break;
p=p->next;
j++;
}
if (p->next != NULL)
{
Node *q=p->next;
p->next=q->next;
a=q->content;
delete q;
q=NULL;
return true;
}
else
{
cout<<"error!"<<endl;
return false;
}
}
}
int main()
{
Node s1,s2,s3,s4,s5;
s1.content=1;
s1.next=&s2;
s2.content=2;
s2.next=&s3;
s3.content=3;
s3.next=&s4;
s4.content=4;
s4.next=&s5;
s5.content=5;
s5.next=NULL;
Node *h=&s1;
int b;
remove(h,b,3); for (Node *p=h; p != NULL;p=p->next)
cout<<p->content<<endl;
cout<<"The deleted number is "<<b<<endl;
getchar(); return 0;
}代码在DEV中可以通过,但是VC++ 6.0就出现断言错误,我查了一些资料说是野指针/数组越界..的确将delete语句注释掉之后就可以运行,但不明白是怎么错了 求各位大神解答 小弟多谢了!
using namespace std;struct Node{
int content;
Node *next;
};bool remove(Node *&h,int &a,int pos)
{
if (pos == 1)
{
Node *p=h;
h=h->next;
a=p->content;
delete p;
p=NULL;
return true;
}
else
{
Node *p=h;
int j=1;
while (j < pos-1)
{
if (p->next == NULL)
break;
p=p->next;
j++;
}
if (p->next != NULL)
{
Node *q=p->next;
p->next=q->next;
a=q->content;
delete q;
q=NULL;
return true;
}
else
{
cout<<"error!"<<endl;
return false;
}
}
}
int main()
{
Node s1,s2,s3,s4,s5;
s1.content=1;
s1.next=&s2;
s2.content=2;
s2.next=&s3;
s3.content=3;
s3.next=&s4;
s4.content=4;
s4.next=&s5;
s5.content=5;
s5.next=NULL;
Node *h=&s1;
int b;
remove(h,b,3); for (Node *p=h; p != NULL;p=p->next)
cout<<p->content<<endl;
cout<<"The deleted number is "<<b<<endl;
getchar(); return 0;
}代码在DEV中可以通过,但是VC++ 6.0就出现断言错误,我查了一些资料说是野指针/数组越界..的确将delete语句注释掉之后就可以运行,但不明白是怎么错了 求各位大神解答 小弟多谢了!
解决方案 »
- 不明白select函数的第一个参数“最大描述符加1”,这个+1到底是什么东西?
- 如何避免在改变窗口大小时的闪烁?
- msxml里边有个IXMLHttpRequest组件,谁知道其onreadystatechange属性的实现原理是什么?
- debug错误,急切求解答,在线等
- 编译错误,希望得到大家的帮助,谢谢!
- 在对话框中如何手动创建菜单???
- TCP和UDP共用问题
- 怎么回事,给不了分吗?我结贴了阿~~~~~~~
- 新手第二问:怎样在vc中调用API?
- 要存储一个含有9个字符的字符串,要申请几个字节的char数组?9个还是10个?
- VC++环境 用MSComm控件实现计算机与GSM模块串口通信
- 求类似QQ好友列表上方的好友搜索控件
int main()
{
Node* s1 = new Node;
Node* s2 = new Node;
Node* s3 = new Node;
Node* s4 = new Node;
Node* s5 = new Node;
s1->content = 1;
s1->next = s2;
s2->content = 2;
s2->next = s3;
s3->content = 3;
s3->next = s4;
s4->content = 4;
s4->next = s5;
s5->content = 5;
s5->next = NULL;
Node * h = s1;
int b;
remove(h,b,3);
for (Node *p=h; p != NULL;p=p->next)
cout<<p->content<<endl;
cout<<"The deleted number is "<<b<<endl;
getchar(); return 0;
}