이
이 print.c 인이
#include <stdio.h>
int wc(FILE *pointer)
{
int a;
int character=0,word=0,line=0;
a = getc(pointer);
while (a != EOF)
{
character++;
if (a == ' ')
word++;
if (a == '\n')
line++;
a = getc(pointer);
}
printf("character: %4d, word: %4d, line: %4d \n", character,word,line);
return 0;
}
이 word.c이다 main.c에있다
gcc -c print.c
gcc -c word.c
gcc -c main.c
gcc -o main main.o print.o word.o
./main
text.txt
text.txt
segmentation fault (core dumped)
이것은 내가 사용한 컴파일 방법입니다.
하지만 왜 분할 결함이 있는지 알 수 없습니다 (코어 덤프).
도와주세요.
모든 경고와 디버그 정보로 컴파일 :'gcc -Wall -Wextra -g'. 그런 다음 디버거'gdb'를 사용하십시오. fix-my-code 질문은 주제와 관련이 없습니다. 사용하고있는 모든 표준 함수 [fopen (3)] (http://man7.org/linux/man-pages/man3/fopen.3.html)와 많은 다른 함수들에 대해 읽어보십시오. 실패 할 수 있습니다. 그것 [여기] (https://stackoverflow.com/a/18193383/841108)을 좋아하지 않는다는 것을 시험하십시오 –
그것의 심상 대신에 원본을 배치하는 것이 좋았을 것입니다. –
두 파일을 중간에 닫지 않고 두 번 열어야합니다. –