[C++] Użycie funkcji system a brak błędów debuggera

Czesc,

mam taki dosc nietypowy problem. Otóż podczas działania programów mam błąd debuggera odnosnie SIGSEGV. Najciekawsze jest to, że jeśli dodam w funkcji (która go prawdopodobnie powoduje) wyw. system z parametrem np. pause lub cls - wszystko działa :expressionless: :expressionless:

Oto kod

type& return_vertex()

    {

        system("pause");

        return *(last->var);

   }

Dlaczego tak się dzieje ? Nie wydaje mi się aby funkcja system miała dzialanie lecznicze…

Pokaż więcej kodu. Abo last jest NULL, /niepoprawnym wskaźnikiem albo last->var jest NULL/niepoprawnym wskaźnikiem (a przynajmniej z dużym prawdopodobieństwem).

Edit: Ten błąd dostajesz podczas pracy programu i to SIGSEGV Twojego programu, czy podczas debugowania i to SIGSEGV debuggera? Bo w sumie różnie można zrozumieć.

Hmm, dalej doszedłem że był to błąd konstr. kopiującego:

public:

   clas() : first(0), second(0), last(0)

    { }


    clas(const clas& source)

    {

        *(this) = source;

    }

W konstr. tym wywoływałem po prostu operator przypisania (bo nie chciało mi się powiększać niepotrzebnie kodu, z powodu tego ze operator= jest dość duzy). Ale z tego co patrzyłem to w k.k. nie zostały zainicjalizowane jeszcze 3 składniki klasy - jak to możliwe ?

Znów: pokaż więcej kodu, zależnie co robi ten operator przypisania, to może działać, bądź nie. Najlepiej daj cały kod, aby móc skompilować/debugować. Po takich strzępkach kodu trudno stwierdzić.

Btw. używałeś debuggera, żeby odkryć przyczynę błędu?