Пара проблем с кодом в его нынешнем виде.
Прототип для fread:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
Вы установили размер 256 (байт) и счетчик 1Это хорошо, это означает, что «прочитайте один кусок из 256 байтов, поместите его в буфер».
Однако ваш буфер имеет длину порядка 2-8 байтов (или, по крайней мере, значительно меньше, чем256 байт), поэтому у вас переполнение буфера.Возможно, вы захотите использовать fred (& buffer, 1, 1, file).
Кроме того, вы записываете байтовые данные в указатель типа int.Это будет работать с одним порядком байтов (фактически, с прямым порядком байтов), так что вы будете в порядке с архитектурой Intel, и из этого выучите вредные привычки, которые вернутся и укусят вас, на днях.
Старайтесь изо всех сил записывать только байтовые данные в байтовое хранилище, а не в целые или плавающие числа.