01/10/2018, 16:06

Báo lỗi Segmentation fault (core dumped) khi chạy chương trình đếm số từ có trong một file với hàm

Chào mọi người,

Mình đang thực hiện chương trình đếm số từ có trong một tập tin (file) và muốn viết đếm số từ với hàm kiểu trả về (Đã viết thành công với hàm kiểu void). Khi biên dịch chương trình thì ok không báo lỗi gì cả, nhưng khi cho chạy chương trình thì lại báo như sau:

Segmentation fault (core dumped)

Tìm mà chưa biết lỗi từ đâu. Chương trình được viết:

#include <stdio.h>
#include <stdlib.h>

int count_num_char(FILE *fp);

int main (int argc, char *argv[])
{
	FILE *fp = NULL;
	int num_char = 0;
	int n = 0;

	fp = fopen("file_text/file_source.txt", "r+"); // "r+"" : it mean read and write into file. If "r" it is only read

	if(fp == NULL) {
      perror("Error: ");
      return(-1);
   	}
   	num_char = count_num_char(fp);
   	printf("Total characters: %d
", num_char);	
	fclose(fp);
	return 0;
}

int count_num_char(FILE *fp)
{
	char c = 0;
	int count = 0;

	c = fgetc(fp);

	for (c = getc(fp); c != EOF; c = getc(fp)){
        if (c != '
' && c != ' '){
            count ++;
 		}
 	}

 	return count;
}

Mình cảm ơn.

*grab popcorn* viết 18:20 ngày 01/10/2018

Để ý 3 cái này:

(1) int count_num_char(FILE *fp)
(2) int *num_char = NULL;
(3) num_char = count_num_char(fp);

Hoàng Đức Trịnh viết 18:20 ngày 01/10/2018

(2) int *num_char = NULL;

Mình mới sửa lại là:
(2) int num_char = 0;

*grab popcorn* viết 18:16 ngày 01/10/2018

Vậy bạn chạy lại thử hết chưa? OvO

Hoàng Đức Trịnh viết 18:23 ngày 01/10/2018

Được rồi.
Cảm ơn bạn nhiều.

Bài liên quan
0