Opublikowano 1 Grudnia 20232 l Cześć Wszystkim, Chciałbym przedstawić problem wycieku pamięci w systemie magazynu. Rzućmy okiem na funkcję z której pochodzi ten problem: Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto 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 ♻️ Zamień 🔍 Szukaj ❌ Usuń: 🔍 Szukaj ♻️ Zamień 📂 Lokalizacja pliku: 'game -> safebox.h' ❌ Usuń: ➕ Dodaj: 📂 Lokalizacja pliku: 'db-> ClientManager.cpp' 🔍 Szukaj ➕ Dodaj: 🔍 Szukaj ♻️ Zamień 🔍 Szukaj ♻️ Zamień 🔍 Szukaj ♻️ Zamień
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto