Zaawansowane CPP/Ćwiczenia 14: Zarządzanie pamięcią
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Ćwiczenie 1
Przerób przykłady z wykładu.
Ćwiczenie 2
Napisz własną implementację zasobnika pamięci (memory pool). Zasobnik powinien być szablonem przyjmującym jako parametr typ obiektów dla których będzie przydzialał pamięc. Wielkość puli powina być podawana w konstruktorze.
template<typename T> linked_pool {
linked_pool(size_t n);
void *allocate() throw(); /*przydziela pamięc na jeden obiket T*/
void deallocate(void p) throw ();
release()throw ();
linked_pool();
}
Jeśli zarządamy za dużo pamięci, to powinien zostać zwrócony wskaźnik zerowy.
Ćwiczenie 3
W oparciu o linked_pool napisz własne
operatory new i delete. Napisz klasę która, będzie
implementowała te operatory i która będzie można dziedziczyć.
Wskazówka