1. 程式人生 > >new出來的物件一定要delete

new出來的物件一定要delete

很多時候,我們會通過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一定要配對使用。