1 / 18
Mar 2017

Otrzymuję błąd SIGABRT lub SIGSEGV. Parokrotnie przejrzałem kod i nie rozumiem skąd ten błąd.
Ktoś, coś?

  • created

    Mar '17
  • last reply

    Jun '21
  • 17

    replies

  • 1.2k

    views

  • 6

    users

  • 7

    likes

  • 1

    link

Taki błąd na spoju powodowany jest przekroczeniem zaalokowanej pamięci.
Spróbuj więc zmiejszyć jej zużycie, może to pomoże. Np
zamiast imie string = 3 bajty? [imie + kropka + '\0']
imie char 1 bajt // kropki nie musisz pamiętać
zamiast strimg pesel 12 bajtów [11 + '\0']
long long pesel 8 bajtów
zamiast string wiek 3 bajty [np 18+'\0']
wiek char 1 bajt

PS
Jednak powyższa poprawka nic nie zmienia. Sprawdziłem teraz i nadal SIGABART.
Jakiś dziwny wirus :wink:

Wirus zainfekował funkcję howToSort tak że zamiast przeciwzwrotnej jest zwrotna.

Po prostu jest tam coś [w twojej funkcji porównującej] nie tak. Napisałem ją trochę inaczej i po swojemu i jest AC.

PS
W międzyczasie pozmieniałem trochę twój kod - wg moich wskazówek, ale to nie miało żadnego wpływu. Dopiero zmiana funkcji porównującej dała AC. Twoja wersja, nie wiem czemu [i nie chcę wiedzieć] daje [chyba tylko dla dużego testu] SIGABRT...

Jeden z warunków jaki musi spełniać funkcja definiująca porządek jest przeciwzrotność, tzn, że f(x, x) powinno być fałszywe dla każdego x.

W przypadku funkcji howToSort jest odwrotnie, f(x, x) jest prawdziwe dla każdego x, innymi słowy definiuje zwrotną relacje.

3 years later

Witam,
wyskakuje błędna odpowiedź, także proszę o zerknięcie na kod, gdyż mimo dość długiego ślęczenia i poprawiania nie zdołałem domyślić się, co winno iść do poprawy.

//Tu był kod - dalej nie mam pojęcia czemu nie działał, ale AC, więc who cares?

Program przechodzi wszystkie wymyślone przeze mnie testy.

Z góry dziękuję.

@filipszejk
Dla testu:

9810150399718AlkoB.
97101503997Boli19B.
99101503997BorucB.17
96091503997B.20Ceg
96081503997K.Cement20
ArciszewskaK.9610150399720
ArciszewskB.1898101503997
Bujoczek97101503997B.19 
B9910150399717B.
Cena2096091503997B.
Cudo20K.96081503997
K.Alinka9610150399720
B.Anka1898101503997
B.97101503997Biala19
B.9910150399717Bialy
B.20Cudo96091503997
K.2096081503997C
J.18Kowalski98030103109
Kowalska19J.98010101105
J.17Kawalski98030103109
B.18Kowalski98030103109
96091503997B.20Cegaa
96091503997B.21Ceg 

masz kolejność: B. Ceg 20 po B. Ceg 21. Ja mam odwrotnie. Niemniej jest to przypadek, który chyba nie powinien się znaleźć w teście.

Druga sprawa. Mój zaakceptowany program radzi sobie z testem:

A.15B98030103109
05311508472C.12Dddd
RwamC.1290121608470

Twój się wywala.

Nie powinien, ale wirus okazał się nie tylko dziwny ale i złośliwy i taki przypadek się pojawił :wink:

Brawo, bardzo dobrze, ale akurat takich testów raczej chyba tutaj nie ma, ale nie sprawdzałem i głowy nie dam.

Pytający uzyskał już AC, więc o co chodzi?
Jeżeli chodzi o naukę pisania lepszych programów, to ok, Ale jest lato, są wakacje. Czy nie lepiej siedzieć nad jeziorem niż przed komputerem? :wink:
A do tego kodu pytającego, mógłbym “wylać” może morze albo całą rzekę uwag więc może lepiej po prostu napisać rozwiązanie od nowa? :wink:

Uzyskał po zalajkowaniu mojej odpowiedzi. A o co chodzi z “więc o co chodzi?” bo nie wiem? W sensie nie wiem do czego (i czy do mnie czy do autora pytania) odnosi się “więc o co chodzi?”

Jak nie wieadomo o co chodzi to chodzi o … :wink:

Chodziło mi dokładnie o to o co chodzi pytającemu. https://pl.spoj.com/status/AL_31_03,filipszejk/3
AC uzyskał już: 2020-07-15 11:02:07, mimo AC, zgłosił jeszcze kilka błędnych kodów i dopiero ok 18:09 zadał pytanie na forum. Może nie zauważył swojego AC? Ty odpowiedziałeś po 2 dniach, więc laik nie miał wpływu na AC? Czy ja coś źle widzę? :wink:

A teraz rozumiem pytanie, ja nie spojrzałem, że zostało zaakceptowane, myślałem, że normalnie dostał AC po naprawieniu błędów (na które wskazałem). To tak, chyba nie zauważył zaakceptowania.
Prawda @filipszejk ?

16 days later

Dostałem AC, używając zupełnie innej wersji programu - skorzystałem z wektorów i klas. Nie mniej dziękuję za pomoc.

10 months later

Czy mógłby ktoś podesłać jakieś trudne testy? Mój program nie przechodzi, mimo że sprawdzałem go wiele razy na przeróżnych testach.