我想读取整个文件内容并打印出来,但是我得到一个段错误,我找不到代码有什么问题......
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * file;
long fsize;
file = fopen("./input.txt","r");
if(file != NULL){
//get file size
fseek(file,0,SEEK_END);
fsize = ftell(file);
rewind(file);
// print
char * file_content;
fgets(file_content,fsize,file);
puts(file_content);
}
else{
printf("open failure\n");
}
fclose(file);
return 0;
}
最佳答案
您传递给 fgets
(file_content
) 的指针未初始化。它应该指向一个足够大的内存块以包含指定数量 (fsize
) 的字节。您可以使用 malloc
来分配内存。
char* file_content = (char*)malloc(fsize);
关于c - 读取文件时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18701924/