更新时间2018-05-04 10:33:16
源代码如下
#include<iostream>
#include<stdlib.h>
using namespace std;
struct node{
int data;
node *next;
};
node *p=NULL;
void ins(int x) //将输入的数采用头插法放入链表中
{
node *q=new node;
q->data=x;
q->next=p;
p=q;
}
void rev(int i) //将链表逆置并输出
{
node *m; //因为用了头插法放入数据所以输出的应与输入的相同
int x;
m=p;
p=NULL;
int j;
while(m!=NULL)
{
node *n=m->next;
p=m;
m=n;
}
cout<<"逆置链表后的结果:";
for(j=0;j<i;j++)
{
x=p->data; //提示这是下一条要执行的语句,不知道在之前哪里出了错
cout<<x;
p=p->next;
}
}
void main()
{
int i;
int a[6];
cout<<"请输入6个数: ";
for(i=0;i<6;i++)
cin>>a[i];
for(i=0;i<6;i++)
ins(a[i]);
rev(i);
system("pause");
return;
}
遇见这种问题一般都是空指针,即:指针里没有赋值~
如果你对null 进行操作就会产生空指针异常
Object obj = new Object();
你要知道 obj是一个Object指针变量,指向Object类的一个实例
我们说obj是一个对象 实质是它指向一个对象的首地址
如果这个指针变量obj 没有指向任何空间 你调用它的方法和属性就会出错
例如 Object obj = new Object();
obj.equals("123");这个是没错的
但换下面语句 Object obj = null;
obj.equals("123");就会出现空指针异常
未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
在使用的过程中,出现了标题中的错误,首先在网上搜了一些方法,费了好大的劲,终于解决了,
关于0xC0000005问题:
0xC0000005: Access Violation错误调试- -
1》数据越界或是定义的指针未释放.
2》空的指针的可能性最大。使用指针前最好能显式的赋值!
应该是指针的问题
可能性 3 种
1:
char *p;
p = new char[number];
delete [] p;
....
// always using p....
p = xxx; // access violation
2:
char *p;
memcpy(p, xxx, number); // access violation
3:
char *p;
p = new char[number];
delete [] p;
.........
delete [] p; // access violation