간단한 메모리 관리자를 쓰고 있습니다. 다른 사람들이 첫 번째 매개 변수로 할당하려는 개체를 추가 할 수 있도록이 함수를 단순화하려고합니다. 메모리 관리자는 해당 개체에 대해 공간을 할당하고 할당 된 공간을 가리 키도록 개체의 포인터를 설정합니다. 문제는 매개 변수를 만드는 방법에 대해 잘 모르겠다. 어떤 유형의 객체에 대해서라도 객체를 전달할 수 있습니다. 제대로 작동 시키려면 캐스트하지 않아도됩니다. 내가 얻을를 호출 할 필요가 어떻게 작동void 포인터를 통해 객체를 함수에 전달합니다.
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);
어떤 도움이나지도 주시면 감사하겠습니다 여기
는 기능입니다 ! :)
템플릿을 사용하여 참조로 가져 가야합니까? – chris