-
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
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- 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??
Najnowsze wątki
- 2025-02-17 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-17 Chrzanów => Programista NodeJS <=
- 2025-02-17 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-17 Białystok => System Architect (Java background) <=
- 2025-02-17 Białystok => Solution Architect (Java background) <=
- 2025-02-17 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-17 Gdańsk => PHP Developer <=
- 2025-02-17 Warszawa => Senior ASP.NET Developer <=
- 2025-02-17 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-17 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-17 Odśnieżanie samochodu
- 2025-02-17 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-17 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-17 Pompiarze...
- 2025-02-16 PV teraz