#include <string>
#include <iostream>
using namespace std;
class A
{
public:
int a;
int b;
A(){a=0;b=0;}
~A(){}
};
int _tmain(int argc, _TCHAR* argv[])
{
A* pObj=new A();
A& obj=*pObj;
delete pObj;
obj.a=10;
cin.get();
return 0;
}
请问obj.a=10这句是否已经造成了非法内存访问
6 个解决方案
#1
内存都已经释放了,你再访问,当然非法了。
但不一定马上表现出来,具体看操作系统如何管理内存。
但不一定马上表现出来,具体看操作系统如何管理内存。
#2
内存已经释放,再给赋值访问已经没有意义了!
#3
释放过的内存应该重新申请
#4
肯定是了
#5
正解
#6
肯定是非法访问,但不一定马上报错
#1
内存都已经释放了,你再访问,当然非法了。
但不一定马上表现出来,具体看操作系统如何管理内存。
但不一定马上表现出来,具体看操作系统如何管理内存。
#2
内存已经释放,再给赋值访问已经没有意义了!
#3
释放过的内存应该重新申请
#4
肯定是了
#5
正解
#6
肯定是非法访问,但不一定马上报错