看辦公室同事用std:Pshared_ptr<t> 用得風生水起,非常羨慕,因而改掉了以前老土的T*, 所有替換成std::shared_ptr</t><t>. 可沒想程序剛編譯過跑起來就崩掉了,去掉了老掉牙的delete。ide
分析緣由,沒有其餘的改動啊。只有上面說的這個替換,不是智能指針麼,怎麼還會core。 堆棧打開一開,就是對應的指針指向的地方已經被釋放了,可是還在一個回調線程裏使用。 這個回調線程裏經過使用T*的方式使用哪一個指針,這樣我在給回調線程傳遞一個參數就必須是 std::shared_ptr</t><t>::get(), 而這裏引用計數不會加1. 致使外面退出後就釋放了,可是回調回來發現指針爲野指針了。
</t>線程