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

Ошибка "Passing argument 1 of 'fwrite' makes pointer from integer without a cast" возникает, когда при вызове функции fwrite в первом аргументе передается целочисленное значение, которое не является указателем.

Синтаксис функции fwrite в языке программирования C выглядит следующим образом:

size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);

В первом аргументе функция fwrite ожидает указатель на блок памяти, из которого нужно записать данные.

Если вы пытаетесь передать целочисленное значение вместо указателя, компилятор выдаст предупреждение или ошибку. В этом случае вам необходимо обеспечить правильное использование функции fwrite.

Чтобы решить проблему, убедитесь, что в первом аргументе fwrite передается указатель на данные, которые нужно записать в файл. Например, если вы хотите записать содержимое переменной data в файл, то вам необходимо передать указатель &data в функцию fwrite:

fwrite(&data, sizeof(data), 1, file);

Здесь &data представляет адрес переменной data, и sizeof(data) указывает на размер данных, записываемых в файл. Последний аргумент 1 означает, что вы записываете только один объект данных.

Впрочем, чтобы понять причины возникновения данной ошибки, необходимо проанализировать контекст, в котором используется функция fwrite. Ошибка может быть также связана с неправильным объявлением переменной или неправильным использованием указателей в других частях программы.