Strona 1 z 1

[C++][spoj] - Odwrotna notacja polska

: 11 kwie 2009, o 11:05
autor: spammer
Siemka.

Mam problem z takim jednym zadankiem ze spoja - .

Nie wiem na prawdę co jest z nim nie tak. 3 przykładowe testy przechodzi mi elegancko a jak wrzucę do sprawdzenia to wyskakuje błąd: runtime error (SIGSEGV).

Niżej zamieszczam kod.....
Ukryta treść:    
I z góry dziękuję za pomoc

[C++][spoj] - Odwrotna notacja polska

: 11 kwie 2009, o 15:57
autor: soku11
Nie chce mi sie analizowac calego kodu, ale widzac ze korzystasz z std::stack i otrzymujac SIGSEGV mozna wywnioskowac, ze poprostu gdzies czytasz spod NULL-a.
Jak mozesz, to daj dane ktore powoduja blad, a najlepiej przesledz dzialanie programu debuggerem.

Pozdrawiam.

[C++][spoj] - Odwrotna notacja polska

: 11 kwie 2009, o 18:04
autor: spammer
Przeleciałem go debuggerem i rzeczywiście jest coś nie tak.
Dla przykładowego wyrażenia \(\displaystyle{ (a+b)}\) normalnie wykonuje te pętle wszystkie wypisuje \(\displaystyle{ a}\), następnie leci po raz kolejny i coś mu się staje na linijce

Kod: Zaznacz cały

A.push(suma[i]);
w tym ostatnim else if. Obok w okienku odpluskiwacza ma coś takiego:

Kod: Zaznacz cały

A.push=&std::stack<<char, std::deque, std::allocator<char>>>::push(char const&)

[C++][spoj] - Odwrotna notacja polska

: 11 kwie 2009, o 19:23
autor: soku11
Hmpf... Przekopiowalem program i uruchomilem z wyrazeniem in: 1 (a+b) i wszystko sie wykonalo. Debugger rowniez przeszedl wszystko normalnie (krok po kroku). Wyslij moze screen z debuggerem i stanem zmiennych.

Pozdrawiam.

[C++][spoj] - Odwrotna notacja polska

: 11 kwie 2009, o 19:27
autor: spammer
Uuuuups xD U mnie też poszło ok, tylko po prostu pierwszy raz debuggowałem i myślałem, że jak jakiś pliczek z biblioteką mi się otworzy, to jakiś błąd ale jak poklikałem dalej to rzeczywiście ok. Sorki.......