Opublikowano 1 Grudnia 20231 r Cześć Wszystkim, Chciałbym przedstawić problem wycieku pamięci w systemie magazynu. Rzućmy okiem na funkcję z której pochodzi ten problem: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Omówienie problemu: Funkcja zmienia rozmiar magazynu 'm_pkGrid'. Kiedy przypisuje nowy obiekt 'CGrid' do 'm_pkGrid', nie zwalnia wcześniej starego obiektu 'CGrid'. W wyniku tego stary obiekt 'CGrid' pozostaje w pamięci, mimo że nie jest już używany przez game. Powoduje to właśnie wyciek pamięci. Rozwiązanie: Zamiast bezpośredniego tworzenia nowego obiektu, najpierw zwolnimy starą pamięć. Użyjemy tutaj inteligentnych wskaźników (smart pointers), które automatycznie zarządzają pamięcią i zapobiegają tego typu problemom. Zachęcam do dyskusji na temat tego rozwiązania i wszelkich innych sugestii, które mogą pomóc w usprawnieniu. Implementacja: 📂 Lokalizacja pliku: 'game -> safebox.cpp' 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ❌ Usuń: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 📂 Lokalizacja pliku: 'game -> safebox.h' ❌ Usuń: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕ Dodaj: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 📂 Lokalizacja pliku: 'db-> ClientManager.cpp' 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕ Dodaj: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.