Здесь
FILE *fin;
fin = fopen(&file_name , "w"); /* this is wrong, since &file_name is of int* type */
fopen()
ожидает первый аргумент типа char*
, но вы указали тип int*
, который неверен и который компилятор правильно сообщил как
ошибка : несовместимые типы указателей передают 'int *'
параметру типа 'const char *'
[-Wincompatible-pointer-types]
, если вы могли скомпилироватьс флагом типа -Wall -Wpedantic -Werror
.Со страницы руководства fopen ()
FILE * fopen (const char * pathname, const char * mode);
Объявление file_name
как массив символов и сохранить в нем имя файла.
char file_name[1024]; /* take a char array to store file name */
/* @TODO : store actual file name into file_name array */
FILE *fin = fopen(file_name , "w");
if(fin == NULL) {
/* @TODO : error handling */
}