1 / 8
Nov 2017

Witam, wykonałem program, który po skompilowaniu i odpaleniu dla przykładowego wejścia zwraca odpowiednie wyjście, z innym ciągami znaków również działa bez zarzutu. Po skończeniu pracy zwraca 0 bez żadnych błędów. Jednakże SPOJ nie zaliczył mi zadania z wiadomością zwrotną: "Błąd wykonania (SIGABRT).

Czy ktoś byłby w stanie nakierować mnie w czym leży problem?

  • created

    Nov '17
  • last reply

    Nov '17
  • 7

    replies

  • 1.5k

    views

  • 3

    users

  • 1

    like

  • 5

    links

Nie możesz od tak tworzyć sobie stringa i wstawiać sobie do niego wartości pod kolejnymi indeksami:

new_string[index]=characters[i];

Ale możesz użyć np. push_back() albo +=.

  1. Zaprzyjaźnij się z Panem Valgrindem. Polecam
  2. Skasuj kod :slight_smile:
  3. new_string+=characters[i]; ++index;
  4. wyłącz synchronizację strumieni
  5. AC
  6. Ciesz się
  7. Poświęć nawet kilka godzin na dowiedzenie się, co było nie tak. Zalecam źródła anglojęzyczne, a zwłaszcza dokumentacje (np. opis operatora +=)

PS
Upss… ktoś mnie ubiegł :wink:

  1. Rozumiem że to jakiś debugger, coś w ten deseń?
  2. Cały?
  3. ok
  4. Chodzi o <iostream>?
  5. nie wiem ocb
  6. po to żyję
  7. gdzie w dokumentacji mogę znaleźć opis tego operatora? wyszukiwarka wariuje przy znakach “+=” :frowning:

Przepraszam za pytania na poziomie piaskownicy, uczę się od tygodnia, może dwóch

Tak

Tak. Nie chcemy przecież, aby inni brali gotowca tylko by samodzielnie rozwiązywali zadanie :slight_smile: A Twój kod to prawie gotowiec. Temu najlepiej usunąć go z forum.

http://oi.edu.pl/old/php/show.php?module=show&file=oi15/przyklady33 - poszukaj fragmentu o synchronizacji I/O (wejścia/wyjścia)

:slight_smile:

Np: http://www.cplusplus.com/reference/string/string/operator+=/16

Forum jest po to, by zadawać pytania :slight_smile:

Z tym kodem to zrozumiałem żeby usunąć cały bo rozwiązanie jest do dupy i powinienem ugryźć to od innej strony heh :wink:
Dzięki za pomoc :+1::+1: