我正在写一个简单的内存管理器。我正在尝试简化此功能,以便其他人可以将他们想要分配的对象添加为第一个参数。内存管理器将为该对象分配空间,并将对象的指针设置为指向分配的空间。问题是我不确定如何制作参数,因此几乎可以传入任何类型的对象,而不必像疯了一样将其转换为使其工作。
这是功能:
bool MemoryManager::Allocate(void** data, unsigned int allocSize, bool isArray)
{
if((m_Heap.m_Pool == nullptr) || (*data != NULL))
return false;
if(isArray)
allocSize += sizeof(unsigned int) * 4;
void* mem = m_Heap.Allocate(allocSize);
if(mem)
{
*data = mem;
return true;
}
else
return false;
}
这是目前我必须调用它以使其工作的方式:
int* Test = NULL;
MemoryManager::GetInstance()->Allocate((void**)(&Test), sizeof(int), false);
任何帮助或指导将不胜感激!:)