2014年6月25日水曜日

2014/06/25 shared_ptr使用のメモ

shared_ptrの使用方法でハマったので自分用のメモ。

一時変数をshared_ptrに格納した際、double freeのエラーが発生。

Object obj;
std::shared_ptr<Object> objp = std::shared_ptr<Object>(&obj);
objp = nullptr;

どうもこれを実行すると一時変数のobjを解放してしまう模様。
解決策としてはshared_ptrを新たに生成すること。

Object obj;
std::shared_ptr<Object> objp = std::make_shared<Object>(obj);
objp = nullptr;

shared_ptrはまだまだ勉強する必要があるなと感じさせられたデバッグでした。

0 件のコメント:

コメントを投稿