Brunon3 |
» 2015-04-10 14:07:16 BSTNode to jakaś Twoja klasa czy jakaś biblioteka? Jeżeli Twoja to pokaż jej kod, nie jestem obeznany z tym setFather(), itp. ;)
-BD. |
|
shadow193 Temat założony przez niniejszego użytkownika |
» 2015-04-10 14:12:34 BSTnode to klasa pojedynczego wezla w drzewie. Potrzebny kod dolaczylem na poczatku tematu.
|
|
akwes |
» 2015-04-10 14:27:55 @Brunon3, Takie moje "9 Przykazań Programistycznych". ;)
|
i? @michal11 Mi osobiście przeszkadza pisanie this wszędzie i dawania klamerek w tej samej linii co nazwa funkcji(java style) |
I co z tego, że Tobie przeszkadza? Argumenty: dlaczego źle i dlaczego bez jest lepiej? @shadow193 Sprowadź wszystko do minimalnego przypadku. Wycieki pamięci powoduje już samo utworzenie drzewa czy dopiero operacje na nim? Skopiuj sobie projekt i eliminuj kolejno funkcje i operacje aż w końcu wyciek zniknie. Będziesz wiedział gdzie szukać. Ewentualnie w każdym konstruktorze dodaj informację o tworzeniu się obiektu a w destruktorze o jego usuwaniu. Zobaczysz czy usuwasz tyle samo razy co alokujesz. A reszcie gratuluję za całą stronę postów bez ani jednej propozycji rozwiązania... |
|
michal11 |
» 2015-04-10 14:42:15 @akwes Napisałem shadow193 w pierwszym poście jakiego narzędzia może użyć do wykrycia wycieku i, że jago kod jest nieczytelny. Zapytał co jest nie tak i mu odpowiedziałem, co mi przeszkadza w jego kodzie, po co mam to argumentować ?
Wracając jeszcze do tematu, jakiej wersji VS używasz ? Ja korzystałem co prawda tylko raz z tego artykułu, pod VS 2013 i z tego co pamiętam to pokazywało tam również w którym miejscu jest wyciek. |
|
shadow193 Temat założony przez niniejszego użytkownika |
» 2015-04-10 14:47:10 Korzystam z wersji 2013 ultimate. Pokazuje linijke, jednakze jest to numer linii z jakiegos pliku ktory on przygotowuje juz w trakcie kompilacji lub cos z w tym stylu ze wszystkich plikow, bo mam numery linii od 150 do 160 a zaden z moich plikow nie ma wiecej niz 80 linii, dlatego ciezko mi sie odniesc, w tej chwili ucze sie do innego kolokwium wieczorkiem potestuje jeszcze program, wycieki sa tylko przy dodawaniu wartosci, przy samej inicjalizacji nie ma. |
|
darko202 |
» 2015-04-10 15:03:26 Wycieki pamięci polegają na tym, ze rezerwuje się określona pamięć, i jej nie zwalnia. zwalnianie delete 1.
BSTree::~BSTree() { this->recursive_tree_destruction( this->getroot() ); BSTnode * helper = this->getsentinel(); delete helper; }
2. void BSTree::recursive_tree_destruction( BSTnode * node ) { if( node != this->getsentinel() ) { this->recursive_tree_destruction( node->getleft() ); this->recursive_tree_destruction( node->getright() ); delete node; } }
chyba nie zwalnia
|
|
shadow193 Temat założony przez niniejszego użytkownika |
» 2015-04-10 22:15:43 Zastanawiam sie dlaczego if mialby nie pozwalac mi na zwolnienie pamieci ? Czy moze ktos odpowiedziec na to pytanie w miare wyczerpujaco ? |
|
shadow193 Temat założony przez niniejszego użytkownika |
» 2015-04-11 00:07:48 Znalazlem blad w kodzie. Uprzejmie dziekuje wszystkim zaangazowanym w watek za pomoc - bardzo to doceniam. Temat do zamkniecia, pozdrawiam shadow193. |
|
1 « 2 » 3 |