SIGSEGV why?

2011-09-11 03:34
0

Mam program: kod.
W czym tkwi problem?

edytowany 2x, ostatnio: Clyde, 2011-09-11 03:35

Pozostało 580 znaków

2011-09-11 04:23
0

Skoro piszesz w C++ to wypadałoby zgodnie ze standardem. Taka deklaracja tablicy jest z nim niezgodna. Zapewne błąd jest przez to, że przepełniasz stos (jeżeli n będzie wystarczająco duże)


Pozostało 580 znaków

2011-09-11 09:23
nav
0

Bo int tab[n] nie jest poprawnym sposobem deklarowania tablicy, jeśli n nie jest stałą znaną na etapie kompilacji.


utf-8 rlz! ٩(ಥ_ಥ)۶

Pozostało 580 znaków

2011-09-11 11:41
0

Utwórz tą tablicę o rozmiarze maksymalnym jaki może być potrzebny i zadeklaruj ją przed pętlą.

Swoją drogą to niepotrzebnie komplikujesz sobie życie tym switchem dla boola.

Typ danych też mogłeś sobie skrócić:

typedef long long unsigned int lluint;

Mógłbyś podać wejście dla którego był problem?

Pozostało 580 znaków

2011-09-11 12:18
Kumashiro
0

Dodatkowo kod Ci się wali na lewą stronę. Użyj funkcji.

Pozostało 580 znaków

2011-09-11 13:22
0

Ustosunkowując się do wypowiedzi @byku_guzio i @navi po zmianie, błąd nadal występuje...

edytowany 1x, ostatnio: Clyde, 2011-09-11 13:22

Pozostało 580 znaków

2011-09-11 16:57
0
  1. Jesteś pewien ze taka tablica na stosie ci się zmieści? Rozumiem ze poklócileś się z "new" ?
  2. Jesteś pewien ze wykraczasz poza tablicę?

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
Jeżeli chodzi o rozwiązanie dynamiczne to odpada z tego względu, że wszystkie elementy tablicy nie są ustawione początkowo na false i trzeba by było puścić dodatkową pętla żeby je ustawić. Takiej potrzeby nie w przypadku tablicy statycznej. - Clyde 2011-09-11 19:38

Pozostało 580 znaków

2011-09-11 17:53
0

a może spróbuj wysłać jakieś wejście do programu :D


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 2x, ostatnio: krwq, 2011-09-11 17:59

Pozostało 580 znaków

2011-09-11 19:31
0

@krwq ma racje, mam niewielką styczność z ideonem i stąd moja niewiedza.
Nie wiem dlaczego dla INputu:
3
1 10
3 5
1 100
otrzymuje zły OUTput?
Te same dane puściłem przez kompilator c::b i output jest okey.

Pozostało 580 znaków

2011-09-11 19:54
0

a) bool arry[n+1]; // to jest źle, takie coś wrzuca się na stertę (bool* arry = new bool[n+1],delete [] arry;)
b) należy zainicjować tą tablicę true lub false, bo nie wiesz jakie wartości będą miały komórki bo zaalokowaniu pamięci
c) konstrukcja: switch (...) { case x: break; default: {} } // WTF? :

  • zastanów się co robi break, jak już to użyj continue,
  • zwykły if będzie bardziej przejrzysty
    d) lepiej liczby pierwsze obliczyc 1 raz, a pozniej korzystac z obliczonych wynikow, niz za kazdym razem je liczyc: ewentualnie można zapisać sobie dokąd są już obliczone i sprawdzać kolejne jeśli jest taka potrzeba.

░█░█░█░█░█░█░█░█░█░█░█░
edytowany 1x, ostatnio: krwq, 2011-09-11 19:55

Pozostało 580 znaków

2011-09-11 20:14
0

pewnie to chciałeś napisać: http://ideone.com/581wP

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0