@WalterBlack

Passing argument 1 of ‘fwrite’ makes pointer from integer without a cast?

Здравствуйте. Есть переменная целого типа со значением 7. Я пытаюсь записать данную переменную в текстовый файл функцией fwrite();

Вот код:
int size = 7;
FILE *fp;

fp = fopen("saves.txt", "w");
fwrite(size, 1, sizeof(size), fp);
fclose(fp);


Но компилятор выдает данную ошибку:
warning: passing argument 1 of ‘fwrite’ makes pointer from integer without a cast

В чем может быть проблема?
  • Вопрос задан
  • 927 просмотров
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В том, что вы не удосужились прочитать описание функции fwrite.
Первым параметром должен быть указатель на записываемые данные, вторым - размер единичного элемента данных, а третьим - количество этих элементов.
Ответ написан
32bit_me
@32bit_me
Программист, встраиваемые системы
Функция fwrite() записывает count объектов — каждый объект по size символов в длину — в поток, указанный stream, из символьного массива, указанного buf. То есть вместо size вы должны передавать указатель на буфер, откуда fwrite будет копировать символы в файл.
Ответ написан
Комментировать
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
man fwrite

Вы пытаетесь читать данные с области с адресом 0x7, что конечно же неправильно. Надо первым параметром передавать указатель на область. И вообще у Вас каша какая-то в параметрах.

fwrite(&size, sizeof(size), 1, fp);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы