Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

wykrywanie wycieków pamięci

Ostatnio zmodyfikowano 2015-08-23 19:54
Autor Wiadomość
1aam2am1
Temat założony przez niniejszego użytkownika
» 2014-08-07 21:50:49
C/C++
int main()
{
    sf::RenderTexture t0;
   
    //rysowanie na t0 w pentli
   
    return 0;
}
Niby gdzie mam to zwolnić?

Edit. Kod poglądowy pokazuje gdzie Valgrid wskazuje błąd jak miałbym pokazać cały (cały, cały) kod to by zajął jakieś )158 KB (bajtów: 162 168).
P-115194
akwes
» 2014-08-08 20:20:24
I oczywiście tak skompilowany przykład, bez Twojego kodu również cieknie?

C/C++
int main()
{
    sf::RenderTexture t0;
    return 0;
}

Edit: Jeżeli valgrind mówi Ci, że w tym obiekcie cieknie, to zupełnie i najzwyczajniej możesz go po prostu źle używać, dlatego kod, który pokazałeś nic nie wnosi do tematu, o ile powyżej napisany kod nie cieknie.
P-115221
1aam2am1
Temat założony przez niniejszego użytkownika
» 2014-10-27 20:45:30
Odświeżam temat. Dalej o wyciekach pamięci.
Czy takie coś cieknie?
C/C++
union
{
    std::string str;
    int i;
   
} moja;

moja.i = 5; //normalnie wszystko działa
moja.str = "To jest nic"; //inny typ
moja.i = 6; //czy tu właśnie wyciekła pamięć ze stringa?
P-119540
Monika90
» 2014-10-27 22:28:42
Nie cieknie, bo się tego nie da skompilować...
P-119552
SocrateZ
» 2014-10-27 22:51:58
Gdybyś pomyślał przez chwile, zauważyłbyś że robiąc coś takiego tracisz wskaźnik do "stringa".
P-119557
1aam2am1
Temat założony przez niniejszego użytkownika
» 2014-10-28 07:54:05
Elementy tej unii nie są wskaźnikami.
String jest listą która jak się domyślam alokuje pamięć dynamicznie.
Więc moje pytanie brzmi czy pamięć może cieknąć przez unie jeżeli jej elementy alokują w jakikolwiek sposób pamięć?
P-119563
Monika90
» 2014-10-28 13:45:28
std::string jako składowa unii wymaga ręcznej konsrtukcji i destrukcji, jeżeli skonstruujesz ten string, a potem zapomnisz wywołać destruktor, to będziesz miał wyciek pamięci.
P-119569
SocrateZ
» 2014-10-28 14:47:09
Elementy tej unii nie są wskaźnikami.
String jest listą która jak się domyślam alokuje pamięć dynamicznie.

String to inaczej tablica znaków, więc to co tu przechowujesz, to wskaźnik do tej tablicy.
P-119570
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona