只是想關於shared_ptr的約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;
'-1'此代碼不能編譯。顯示一些努力。 – 2013-03-06 14:27:06
'shared_ptr'如果該代碼泄露將會非常無用。它不是由白癡設計的。另外,自己刪除指針導致雙重刪除的事實不會讓你知道'shared_ptr'也在做這件事嗎? – 2013-03-06 14:29:00
看起來像「_foo」應該是「_pff」,反之亦然。 – 2013-03-06 14:30:17