函数形式如下TYPE* Fun(TYPE* p1,TYPE* p2)
{
TYPE* p = new TYPE[p1.size + p2.size];
//do..
return p;
}函数过程是把p1和p2指向的数据进行处理,放到new出来的p里面,然后返回。
外部需要使用返回的p;
不过这样的话,随着函数调用次数的增加,一次次的new新的内存,却没有释放,造成资源的浪费,时间越久浪费越大。有没有办法把p的内存给释放掉?
活着有没有更好的办法使用函数处理的结果?
{
TYPE* p = new TYPE[p1.size + p2.size];
//do..
return p;
}函数过程是把p1和p2指向的数据进行处理,放到new出来的p里面,然后返回。
外部需要使用返回的p;
不过这样的话,随着函数调用次数的增加,一次次的new新的内存,却没有释放,造成资源的浪费,时间越久浪费越大。有没有办法把p的内存给释放掉?
活着有没有更好的办法使用函数处理的结果?
... //使用返回的数据
delete [] pData; // 在不再需要的时候 delete
C++ 中
new 和 delete 必须配套使用。
new 返回一个指针,不使用时,用 delete 释放这个指针即可。
CArray<LISTCOMBOBOX*, LISTCOMBOBOX* > m_pListComboBox;//.cpp中
void CXXXXXX::SetComboBox(int iColumn, int iRow)
{
LISTCOMBOBOX *pListComboBox = new LISTCOMBOBOX;
...
...
m_pListComboBox.Add(pListComboBox);//保存在数组中,在析构函数中deleteCXXXXXX::~CXXXXXX()
{
//在此delete
for(int i = 0; i < m_pListComboBox.GetSize(); i++)
{
delete m_pListComboBox[i];
m_pListComboBox[i] = NULL;
}
}