В 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
", id, entry);
fputs(entry1, f);
fclose(f);
}
}
В чем может быть проблема?
Ответ
Ну так
f = fopen(file, "w+")!=NULL
рассматривается компилятором как
f = (fopen(file, "w+")!=NULL)
так что все верно...
Пишите вот так:
(f = fopen(file, "w+"))!=NULL
Комментариев нет:
Отправить комментарий