我的問題是這樣的,我有一個對象,我會初始化後,我將推入一個向量。該向量將在當前方法超出範圍之後很長時間使用。我如何避免內存泄漏,當我不能立即處理數據
的代碼看起來是這樣的:
DataObject *ptrDataObj = new DataObject();
Parent::DataVector.push_back(ptrDataObj);
:
:
// end of method
這個實施將導致肯定的內存泄漏。但是,如果我使用RAII而不是指針,那麼在DataVector使用它時DataObject已經超出了範圍。我看到的唯一選擇可能涉及某種副本。
我已經沉浸在C#多年現在,並試圖再次在本土世界重新振作自己。
請指教..
這裏沒有內存泄漏。如果以後從DataVector中刪除指針但忘記刪除它,則確實存在內存泄漏。所以不要忘記在那個時候刪除它。 – nos
你可以有一個向量unique_ptr或shared_ptr – NoSenseEtAl