私はファイルを読むためのプログラムを書いていました。int i
また、main関数の3行目に配置するかどうかによって、ランタイムエラーが発生します。
それが私のプログラムに影響を与える理由はわかりません。しかし、そうです。では、なぜそれが起こっているのでしょうか?そして、少なくとも原則として、私たちが望むところならどこでも変数を宣言することができないはずですか?
これが私のコードです
答えを得た
ストーリーのモラル:ポインターを使用する前に、必ずポインターを初期化してください。
#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));
}