hm, pa nije to toliko pitanje toga kako bih ja to volio uraditi, nego kako mogu. nemam ja 1000 pointera u nizu, nego imam 1000 class tipova, a jednako je moguće da je bilo koji void* iz pomenutog niza ustvari bilo koji od tih 100 class tipova.
Da pobliže objasnim, niz koji sadrži void* se puni u overloadanom new operatoru:
Code:
void* operator new(size_t _Count)
{
void* pRet = CMemObserver::GetInstance()->Allocate( _Count);
return pRet;
}
void* CMemObserver::Allocate( size_t Bytes)
{
void* pPtr = malloc( Bytes);
...
m_aiAllocated[sm_iAllocationIndex] = (int)pPtr;
...
return pPtr;
}
Dakle, mogao bih još negdje i da spasim veličinu alokacije, ako bi bilo od pomoći, ali ne i tip pointera (bar ja ne znam kako, a volio bih da mi neko kaže ako zna). Kasnije kada budem vadio pointere iz m_aiAllocated, neću znati kojeg su tipa. Sve što pitam je, zna li neko, da li postoji nešto, neki operator ili tako nešto koji kaže:
Code:
kojeg_si_tipa_bio_kad_si_prvobitno_alociran( (void*)m_aiAllocated[neki_broj] )
samo to pitam.