Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Naprawa wycieku pamięci w systemie magazynu: funkcja 'ChangeSize'

Featured Replies

Opublikowano

image.png.d7f22788728caf3886ccc11653d89e13.png

 

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ń

  • 2 miesiące temu...
  • 1 miesiąc temu...
  • 2 tygodnie później...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.