#c #файлы #указатели
В main методе только вызов этой функции: add_entry("123.txt", "123", "some text");
После запуска создается файл и на строке fputs вылетает SIGSEGV.
Через дебагер запускаю и узнаю, что у f указатель 0x1 после открытия файла.
void add_entry(char* file, char* id, char* entry)
{
FILE* f;
if(f = fopen(file, "w+")!=NULL)
{
char* entry1 = calloc(strlen(entry)+strlen(id)+3, sizeof(char));
sprintf(entry1, "%s|%s\n", id, entry);
fputs(entry1, f);
fclose(f);
}
}
В чем может быть проблема?
Ответы
Ответ 1
Ну так f = fopen(file, "w+")!=NULL рассматривается компилятором как f = (fopen(file, "w+")!=NULL) так что все верно... Пишите вот так: (f = fopen(file, "w+"))!=NULL
Комментариев нет:
Отправить комментарий