Opublikowano 25 Października 20231 r Cześć, 🖐️ Wprowadzenie W oryginalnej implementacji każde wywołanie funkcji 'CreateWhisper' z identycznym argumentem 'c_szName' skutkowało utworzeniem nowego obiektu typu 'CWhisper'. Następnie obiekt ten był dodawany do mapy. Ta praktyka otwierała możliwość nadpisania już istniejących obiektów bez ich wcześniejszego usunięcia, co stwarzało ryzyko potencjalnych wycieków pamięci. Rozwiązanie: Implementacja Smart Pointerów Zdecydowałem się zastosować inteligentne wskaźniki, dokładniej mówiąc std::unique_ptr, jednak tylko w kontekście mapy m_WhisperMap. Nie są one używane jako wartości zwracane przez funkcję. Dzięki użyciu std::unique_ptr w mapie, zarządzanie pamięcią obiektów typu CWhisper jest teraz automatyczne i znacznie bezpieczniejsze. Kiedy element jest usuwany z mapy, odpowiadający mu std::unique_ptr automatycznie zwalnia zajmowaną pamięć. Wartość zwracana przez funkcję CreateWhisper to nadal surowy wskaźnik, ale jego zarządzanie pamięcią jest kontrolowane przez std::unique_ptr przechowywany w mapie. To podejście eliminuje ryzyko wycieków pamięci. Sharegon najlepsze forum pamiętajcie 😁👍 Implementacja: 📁 Lokalizacja pliku: 'UserInterface -> PythonChat.cpp' 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 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ę 🔐 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ę 📁 Lokalizacja pliku: 'UserInterface -> PythonChat.h' 🔍 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ę
Opublikowano 12 Listopada 20231 r Dzieląc się tym kodem, sprawiłeś, że gra jest o niebo lepsza. Dzięki!
Opublikowano 1 Stycznia 20241 r No nie takie inteligentne te wskaźniki, skoro powodują wycieki pamięci
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ą.