Naprawa wycieku pamięci
Ostatnio zmodyfikowano 2017-01-27 20:04
CTRL85 Temat założony przez niniejszego użytkownika |
Naprawa wycieku pamięci » 2017-01-27 17:44:59 Witam! Mam problem z moim program, mianowicie wg Visuala mam wyciek pamięci, nie zwalniam :Element *start = new Element;" Ale gdy próbuję usunąć ten element, to Visual wywala "ConsoleApplication1.exe has triggered a breakpoint." #include <iostream>
using namespace std;
int najmniejsza = 0;
struct Element { int arg; int wynik; Element * nast; }; (...) void UsunWszystko( Element * Temp ) { if( Temp->nast != NULL ) UsunWszystko( Temp->nast ); delete Temp; }
int main() { int ileWielomianow = 0; int ileArgumentow = 0; int StopienWielomianu = 0; int arg = 0; cout << "Ile wielomianow: "; cin >> ileWielomianow; cout << "Ile Argumenow: "; cin >> ileArgumentow; Element * start = new Element; if( ileArgumentow > 0 ) { start = WczytajArgumenty( ileArgumentow ); Zacznij( ileWielomianow, StopienWielomianu, * start, ileArgumentow ); } else WyswietlPustaLinie( ileWielomianow ); if( ileArgumentow > 0 ) UsunWszystko( start ); else delete start; } |
|
pekfos |
» 2017-01-27 19:41:41 Element * start = new Element;
|
Po co w ogóle ta alokacja? Albo tej zmiennej nie używasz, albo ją nadpisujesz. W tym drugim wypadku wycieka pamięć. |
|
CTRL85 Temat założony przez niniejszego użytkownika |
» 2017-01-27 20:04:29 Dzięki wielkie, poprawiłem na Element * start = WczytajArgumenty( ileArgumentow ); i wszystko działa. :) |
|
« 1 » |