new出來的物件一定要delete
阿新 • • 發佈:2018-12-23
很多時候,我們會通過new構建一個指標物件:分配記憶體和呼叫建構函式。我們知道new和delete一定要配套使用,並且new []和delete []配套使用。但是有些時候,並不知道什麼時候需要delete 掉new分配的空間。如以下偽碼:
<pre class="cpp" name="code">struct structClient { CString strID; int nIndex; BOOL bRead; BOOL bWrite; }; std::vector <structClient*> m_vecClient; structClient *pClient=new structClient; ....... m_vecClient.push_back(pClient); .......
我們建立了一個結構體structClient,並定義一個vector m_vecClient,用於儲存structClient指標物件。將new出來的*pClient新增到m_vecClient中。以後對m_vecClient進行相應的操作。當程式終止時,我們必須刪除m_vecClient中的每一項,偽碼如下:
for (int i=0;i<m_vecClient.size();i++)
{
delete m_vecClient[i];
m_vecClient[i]=NULL;
}
m_vecClient.clear();
PS:new 和delete一定要配對使用。