zliczanie linii C linux naruszenie pamięci

0

Witam.
Próbuję napisać program w C, który będzie zliczał mi linie z wybranego pliku. Niestety za każdym razem, gdy go uruchamiam wyskakuje mi błąd "naruszenie dostępu do pamięci". I oczywiście program nie działa. Będę wdzięczna za wszelkie wskazówki dlaczego mi ten kod nie działa...
(wklejam fragment od momentu, gdy plik już mam otwarty tylko z prawami do odczytu, ale jeśli okaże się całość niezbędna, to proszę dać znać):

double=liczba_linii;
for(liczba_linii=0; getc(fd)!='\n'; liczba_linii++ 
0

Witaj

Wygląda na to, że próbujesz pobierać pojedyncze znaki z pliku, aż do napotkania znaku końca linii. Pobrane znaki z pierwszej linii pliku zliczasz zmienną 'liczba_linii', która sugeruje, że przechowuje liczbę linii a przechowuje liczbę znaków. Wcześniej deklarujesz tą zmienną jako double (niepoprawnie zresztą) (tak w ogóle, to czemu double? int wystarczy).

 double=liczba_linii; 

Proponuję pobierać pojedyncze znaki z pliku do momentu napotkania końca pliku.

 do {
znak = getc(fd);
// ...
} while ( znak != EOF ); 

Teraz w powyższej pętli możesz zliczać wystąpienia znaku końca linii, tym samym otrzymując ich liczbę.

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