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 件のコメント:
コメントを投稿