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

Naprawa wycieku pamięci

Ostatnio zmodyfikowano 2017-01-27 20:04
Autor Wiadomość
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."

C/C++
#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;
   
}
P-157027
pekfos
» 2017-01-27 19:41:41
C/C++
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ęć.
P-157034
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. :)
P-157039
« 1 »
  Strona 1 z 1