假设我创建一个成员变量指针pBuffer
。我将此缓冲区发送到一些未知的土地以填充数据。现在说pBuffer中有任意数量的数据。
问:是否有一种方法可以在不完全删除pBuffer的情况下重置pBuffer,同时仍然重新分配它占用的所有不必要的内存?
例:
class Blah
{
public:
unsigned char* pBuffer;
Blah(){pBuffer = NULL;}
~Blah(){}
FillBuffer()
{
//fill the buffer with data, doesn't matter how
}
ResetBuffer()
{
//????? reset the buffer without deleting it, still deallocate memory ?????
}
};
int main()
{
Blah b;
b.FillBuffer();
b.ResetBuffer();
b.FillBuffer(); //if pBuffer were deleted, this wouldn't work
}
最佳答案
如果您知道缓冲区中的内容数量与缓冲区中的剩余空间,请尝试realloc()
。
关于c++ - 我如何 “reset”一个缓冲区?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14841927/