• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Segmentation fault w gcc na linuksie, który nie występuje w eclipse na windowsie.

0 głosów
68 wizyt
pytanie zadane 3 grudnia 2017 w C i C++ przez Zwolin Nowicjusz (150 p.)

Witam, jako że to mój pierwszy post chciałbym pozdrowić wszystkich użytkowników forum :) Postanowiłem ostatnio przesiąść się na linuksa. Jako kompilatora używam gcc-7. Rozwiązywałem zadanie ze SPOJ'a Flamaster. Napisałem taki oto kod:

#include<stdio.h>

int main(){
    int a,b,c,n;
    char wyraz[200], wyraz2[200];
    scanf("%d", &n);
    for(int i=0; i<n; i++){
        scanf("%s", wyraz);
        a=b=c=0;
        while(wyraz[a]!='\n'){
            b=0;
            wyraz2[c]=wyraz[a];
            a++; c++;
            while(wyraz[a-1]==wyraz[a]){
                b++; a++;
            }
            if(b==1) {wyraz2[c]=wyraz[a-1]; c++;}
            else if(b>=2) {wyraz2[c]=b+'0'; c++;}
        }
        wyraz2[c]='\n';
        printf("%s", wyraz2);        
    }
    return 0;
}

Wiem, że zapis

wyraz2[c]=b+'0';

będzie działał tylko dla b z zakresu 0-9, ale większe numery zaimplementuje później. Szukałem błędu przez około 2 godziny, aż wysłałem kod koledze, który odesłał mi screena i powiedział, że u niego program działa bez problemu. Używa on Eclipse i Mingw. Nie wiem, czy powinienem używać innego kompilatora na linuksie? Czy popełniam gdzieś błąd?

1 odpowiedź

+1 głos
odpowiedź 3 grudnia 2017 przez the_danger Gaduła (4,800 p.)
wybrane 3 grudnia 2017 przez Zwolin
 
Najlepsza

C-stringi powinny być zakończone zerem czyli '\0' a nie znakiem nowej linii

while(wyraz[a]!='\0')
wyraz2[c]='\0';

 

Podobne pytania

0 głosów
3 odpowiedzi 176 wizyt
pytanie zadane 6 kwietnia 2018 w C i C++ przez Mateusz Tocha Bywalec (2,560 p.)
0 głosów
1 odpowiedź 57 wizyt
0 głosów
0 odpowiedzi 91 wizyt
pytanie zadane 27 stycznia 2017 w C i C++ przez Shyller Nowicjusz (140 p.)
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.FAQ

65,663 zapytań

112,292 odpowiedzi

236,952 komentarzy

46,650 pasjonatów

Przeglądających: 265
Pasjonatów: 12 Gości: 253

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...