Здесь
char *str=NULL;
str
- переменная-указатель, и она инициализируется с NULL
, что очень хорошо, но сохранить что-то в str
, то есть прочитать слово из файла и сохранить в str
он должен иметь действительную память.Поэтому либо динамически выделяйте память для str
str = malloc(SIZE); /* define SIZE */
, либо используйте массив символов, например
char str[100]; /* let say each word of file is less than 100 char's */
Например,
char str[100];
while(fscanf(fp,"%s",str)!=EOF) {
printf("%s",str);
}
Также вместо void main() { }
используйте
int main(void) {
/* some_code */
return 0;
}
, как вы можете видеть из C Стандарт 5.1.2.2.1 Запуск программы .