我正在编写一个程序来读取文件。而且我一直有运行时错误,这取决于我是否放在int i
主函数的第三行。
我认为没有理由对我的程序产生影响。但确实如此。那么为什么会这样呢?而且,至少在原则上,我们不应该能够在我们想要的任何地方声明变量吗?
这是我的代码
得到答案
故事的道德:在使用它们之前总是初始化你的指针。
#include <stdio.h>
#include <stdlib.h>
char read_char(FILE ** fp);
int main()
{
char * str;
str = (char *) malloc(sizeof(char));
FILE * f;
// int i <---------Problem here
f = fopen("txt.txt", "r");
*str = read_char(&f);
putchar(*str);
return 0;
}
char read_char(FILE ** fp)
{
char * c;
c = malloc(sizeof(char));
if ((*fp) == NULL)
{
printf("Error accessing file");
exit(0);
}
(*c) = getc((*fp));
return((*c));
}