运行的时分出错了?
运行的时候出错了??
这是程序
#include <iostream>
using namespace std;
int main( )
{
int *p=new int;
*p=3600;
cout<<*p<<endl;
delete p;
cout<<*p<<endl;
p=0;
p=new int;
*p=8;
cout<<*p<<endl;
delete p;
return 0;
}
------解决思路----------------------
#include <iostream>
using namespace std;
int main( )
{
int *p=new int;
*p=3600;
cout<<*p<<endl;
delete p;
cout<<*p<<endl; //这里奔溃,都delete了,就别再访问它了
p=0;
p=new int;
*p=8;
cout<<*p<<endl;
delete p;
return 0;
}
------解决思路----------------------
delete p; 以后再调用 cout<<*p<<endl; 出错很正常啊。
------解决思路----------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
------解决思路----------------------
delete后再访问,其结果是未定义的。别去纠结崩不崩了
#include <iostream>
using namespace std;
int main( )
{
int *p=new int;
*p=3600;
cout<<*p<<endl;
delete p;
cout<<*p<<endl;
p=0;
p=new int;
*p=8;
cout<<*p<<endl;
delete p;
return 0;
}
------解决思路----------------------
#include <iostream>
using namespace std;
int main( )
{
int *p=new int;
*p=3600;
cout<<*p<<endl;
delete p;
cout<<*p<<endl; //这里奔溃,都delete了,就别再访问它了
p=0;
p=new int;
*p=8;
cout<<*p<<endl;
delete p;
return 0;
}
------解决思路----------------------
delete p; 以后再调用 cout<<*p<<endl; 出错很正常啊。
------解决思路----------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
------解决思路----------------------
delete后再访问,其结果是未定义的。别去纠结崩不崩了