智能指針管理的分配內存是否保證在發生異常時釋放,如下所示?在C++ shared_ptr用法下面會有泄漏嗎?
#include <memory>
void test(std::shared_ptr<int> sptr)
{
throw "exception";
}
int main()
{
std::shared_ptr<int> ptr(new int(1));
test(ptr);
return 0;
}
我想執行的代碼,把斷點shared_ptr
析構函數,但我沒有看到它獲取調用。我認爲記憶應該自己清理。我是對的,還是不會清理?
當*時釋放*由於沒有更多的代碼可以運行,因此沒有什麼可以解放它的。 –