读取文件时出现段错误
我想阅读整个文件内容并将其打印出来,但我得到一个段错误,我找不到代码有什么问题…
#include #include 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);
char * file_content只是一个指针,需要分配内存来存储字符串。
char * file_content; file_content = malloc(fsize);
“..但我得到一个段故障”
显然是因为你试图写入未初始化的file_content
使用前为file_content
分配内存
char * file_content =malloc(fsize);