在实际的环境中,可能会遇到需要反复申请释放内存空间的情况,而每次申请的内存空间大小又不确定,如果每次都申请,效率肯定会比较低
下面的算法,可以减少无用功,仅在需要更大的内存时,重新申请一次
void getBuffer(char** ppBuf, int uSize)
{
if (*ppBuf)
{
if (_msize(*ppBuf) < uSize)
{
delete[] *ppBuf;
*ppBuf = NULL;
*ppBuf = new char[uSize];
}
}
else
{
*ppBuf = new char[uSize];
}
}