您的位置:首页 > 编程语言 > C语言/C++

c++, delete无法释放内存,太奇怪了

2009-12-02 15:33 225 查看
1:大家看看下面代码;居然打印两次“func1 exec !”;各位大师分析下是何原因!为何 delete obj;
obj = NULL;这两句没起作用;我觉得这种现象有点奇怪。问了几个人居然都无法解释。

#include <iostream>
#include <string>
#include <string.h>

using namespace std;

class abc
{
public:
void func1()
{
printf( "func1 exec !/n" );
}
};

int main()
{
abc * obj = new abc();
obj->func1();
delete obj;
obj = NULL;
obj->func1();
return 0;

}

2:更奇怪的还在后面;看下面代码;类abc指针obj指向NULL; 居然也可以打印;

#include <iostream>
#include <string>
#include <string.h>

using namespace std;

class abc
{
public:
void func1()
{
printf( "func1 exec !/n" );
}
};

int main()
{
abc * obj = NULL;
obj->func1();
obj = NULL;
obj->func1();
return 0;

}

期待各位大师的解释一下!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: