我想检查以下简单代码是否存在内存泄漏。在函数中,它删除一个指针并将一个新对象分配给这个指针。这合法吗?在 g++ 编译器下,即使我删除了测试指针,我仍然可以访问它的成员,这对我来说看起来很奇怪。
class cTest{
public:
cTest(double _m){
m=_m;
}
~cTest(){}
double m;
};
void function (cTest * test){
delete test;
std::cout<<test->m<<std::endl;
test= new cTest(1.2);
}
int main(){
cTest *t = new cTest(0.1);
std::cout<<t->m<<std::endl;
function (t);
std::cout<<t->m<<std::endl;
delete t;
return 0;
}
它打印出来
0.1
0.1
1.2