只是想澄清一下 shared_ptr
int main(){
typedef std::tr1::shared_ptr<Foo> _foo;
_foo obja(new Foo());
Foo *objb = obja.get();
// delete objb; //deleting objb will throw double free or corruption
return 0;
}
在上面的代码中,如果objb没有被删除或释放,是否存在内存泄漏?最终,obja将超出范围并释放自己。由于objb和obja指向同一个实例,这是否意味着不需要释放objb?
上面是不是和这个一样:
Foo *obja = new Foo();
Foo *objb;
objb = obja;
delete obja;