私は単純なメモリマネージャーを書いています。この関数を単純化しようとしているので、他の人は割り当てたいオブジェクトを最初のパラメーターとして追加できます。メモリ マネージャは、そのオブジェクトに領域を割り当て、割り当てられた領域を指すようにオブジェクトのポインタを設定します。問題は、パラメーターを作成する方法がわからないため、ほぼすべてのタイプのオブジェクトを渡すことができ、狂ったようにキャストして機能させる必要がありません。
関数は次のとおりです。
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);
ヘルプやガイダンスをいただければ幸いです。:)