Способ «управления» памятью, связанной с shared_ptr
, заключается в использовании области видимости C ++, часто называемой RAII ( R esource A cquisition I s I нитиализация).
Для вашего кода:
int main(int argc, char *argv[])
{
{
auto sp = std::make_shared<int>();
std::cout << *sp << std::endl;
}
// memory is now delete'd because "sp" is out-of-scope
return 0;
}
С shared_ptr
все может быть (совсем немного) более сложный, чем несколько shared_ptr
s могут указывать на одну и ту же память; только когда последний один утерян, память удаляется.
Вы должны использовать std::unique_ptr
, пока вам действительно не понадобится shared_ptr
.