在C中读取文件时出现分段错误



我试图逐个字符读取文件,但调试器在到达fscanf时返回一个分段错误,这是我的代码:

int main(){
FILE *inFile;
char *carattere = NULL;
inFile = fopen("../file.txt", "r");
if (inFile == NULL){    
return -1;
}
while(fscanf(inFile, "%c", carattere) != EOF){  //segmentation fault
printf("%c ", *carattere);
}
fclose(inFile);
return 0;}

(我最近重新安装了IDE(。

您应该为要读取的字符提供一些空间。当您尝试写入carattere时,它指向哪里?

carattereNULL,它甚至不能存储单个字符。因此,您需要给它一些内存,至少2个字节,字符本身的1st字节和''的2nd比特。

因此,初始化carattere如下:

char carattere[2] = { 0 };

最新更新