-
Data: 2009-01-06 11:29:02
Temat: Re: Memory pool
Od: Michał 'Khorne' Rzechonek <k...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 6 Sty, 01:45, Maciej Piechotka <u...@g...com> wrote:
> Chodzi o bloki o stałej wielkości. Poczytam.
Z palca, "proszenie o wiecej miejsca" jako cwiczenie dla czytelnika,
wystarczy dodac bloki do listy.
template<int Size>
class ChunkAllocator
{
struct Chunk
{
char memory[Size];
Chunk *next;
Chunk(): next(NULL) { }
};
public:
ChunkAllocator(size_t a_count): m_chunks(new Chunk[a_count])
{
for(size_t i = 0; i != a_count-1; ++i)
{
m_chunks[i].next = &m_chunks[i+1];
}
m_current = &m_chunks[0];
}
void *allocate()
{
if(m_current == NULL)
{
return NULL;
}
void *ptr = m_current->memory;
m_current = m_current->next;
return ptr;
}
void deallocate(void *a_chunk)
{
if(a_chunk == NULL)
{
return;
}
Chunk *chunk = reinterpret_cast<Chunk*>(a_chunk);
chunk->next = m_current;
m_current = chunk;
}
private:
Chunk *m_current;
Chunk *m_chunks;
};
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-26 O co chodzi?
- 2024-05-26 PJ autobus-tramwaj
- 2024-05-26 Renault Trafic i lampka z czerwonym STOP
- 2024-05-26 cena pięciocyfrowa
- 2024-05-26 Re: Jak dobra KE "okrada" złą Rosję "dla Ukrainy"
- 2024-05-25 supercap
- 2024-05-25 Sulzbach => Technischer Rollouter (d/m/w) <=
- 2024-05-25 Warszawa => Senior Account Manager <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Interactive/Experience Designer <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Re: znów ten wrocław