0
我有一個C++程序,我需要爲日誌(char *)分配內存。使用共享指針進行運行時數組分配
我讀了關於std::shared_ptr
以及他們將如何處理一旦範圍被刪除的內存刪除。
下面的代碼會在範圍離開後自動釋放日誌緩衝區嗎?
std::shared_ptr< char * > pLog =
std::shared_ptr< char * > (new char[logLength+1]);
我知道這可能有點簡單,但我不太確定如何確認它是否有效。
[共享\ _ptr到陣列?:它應該被用來]的可能的複製(http://stackoverflow.com/questions/13061979/shared-ptr-to-an-array-should-it-被使用) –
'std :: shared_ptr'很難與動態數組一起使用;默認情況下'std :: shared_ptr'模擬單個'T'對象,而不是數組。 (你需要通過一個合適的數組刪除器;例如[見這裏的例子](http://en.cppreference.com/w/cpp/memory/default_delete)。)'std :: experimental :: shared_ptr'支持數組類型'T []'(像'std :: unique_ptr'),並且有一個更方便的請求正確的刪除方法。 –